Python - HTTP Başlıkları

İstemci ve sunucu arasındaki istek ve yanıt, mesajdaki başlık ve gövdeyi içerir. Başlıklar, TCP bağlantısı üzerinden gönderilen işlenmemiş iletinin başında görünen protokole özgü bilgileri içerir. Mesajın gövdesi, başlıklardan boş bir satır kullanılarak ayrılır.

Üstbilgi Örneği

Http yanıtındaki başlıklar aşağıdaki türlere ayrılabilir. Aşağıda başlığın bir açıklaması ve bir örnek bulunmaktadır.

Önbellek Kontrolü

Cache-Control genel başlık alanı, tüm önbelleğe alma sistemi tarafından uyulması GEREKEN yönergeleri belirtmek için kullanılır. Sözdizimi aşağıdaki gibidir:

Cache-Control : cache-request-directive|cache-response-directive

Bir HTTP istemcisi veya sunucusu, Cache-controlönbellek için parametreleri belirtmek veya önbellekten belirli türdeki belgeleri talep etmek için genel başlık. Önbelleğe alma yönergeleri virgülle ayrılmış bir listede belirtilir. Örneğin:

Cache-control: no-cache

Bağ

Bağlantı genel-üstbilgi alanı, gönderenin söz konusu bağlantı için istenen seçenekleri belirlemesine olanak tanır ve diğer bağlantılar üzerinden proxy'ler tarafından iletilmemelidir. Bağlantı başlığını kullanmak için basit sözdizimi aşağıdadır:

Connection : "Connection"

HTTP / 1.1, gönderenin yanıtın tamamlanmasının ardından bağlantının kapatılacağını bildirmesi için "kapat" bağlantı seçeneğini tanımlar. Örneğin:

Connection: close

Varsayılan olarak, HTTP 1.1, bağlantının bir işlemden sonra otomatik olarak kapanmadığı kalıcı bağlantılar kullanır. Öte yandan HTTP 1.0, varsayılan olarak kalıcı bağlantılara sahip değildir. 1.0 istemcisi kalıcı bağlantılar kullanmak isterse,keep-alive aşağıdaki gibi parametre:

Connection: keep-alive

Tarih

Tüm HTTP tarih / saat damgaları, istisnasız Greenwich Ortalama Zamanında (GMT) gösterilmelidir ZORUNLU. HTTP uygulamalarının, tarih / saat damgalarının aşağıdaki üç temsilinden herhangi birini kullanmasına izin verilir:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

Transfer Kodlama

Transferi-Encoding genel başlık alanı dönüşümün tipi güvenle amacıyla ileti gövdesine uygulanan gönderen ve alıcı arasında transfer olmuştur belirtir. Bu içerik kodlamayla aynı değildir çünkü transfer kodlamaları varlık gövdesinin değil mesajın bir özelliğidir. Transfer-Encoding başlık alanının sözdizimi aşağıdaki gibidir:

Transfer-Encoding: chunked

Tüm aktarım kodlama değerleri büyük / küçük harf duyarlıdır.

Yükselt

Yükseltme genel başlığı istemci ne desteklediği ek haberleşme protokolleri belirtmek için ve sunucu bulur o anahtar protokollerine uygun olması halinde kullanmak istiyorum izin verir. Örneğin:

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

Yükseltme başlığı alanı, HTTP / 1.1'den başka bir uyumsuz protokole geçiş için basit bir mekanizma sağlamayı amaçlamaktadır.

Üzerinden

Via genel başlık ara protokolleri ve alıcıları belirtmek için geçitleri ve vekiller tarafından kullanılabilir. Örneğin, HTTP / 1.0 kullanıcı aracısından, isteği nowhere.com'daki genel bir proxy'ye iletmek için HTTP / 1.1 kullanan dahili bir proxy kodu adı verilen "fred" e bir istek mesajı gönderilebilir ve bu da isteği şu şekilde tamamlar: bunu www.ics.uci.edu adresindeki kaynak sunucuya iletmek. Www.ics.uci.edu tarafından alınan istekte şu Via başlık alanı olacaktır:

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

Yükseltme başlığı alanı, HTTP / 1.1'den başka bir uyumsuz protokole geçiş için basit bir mekanizma sağlamayı amaçlamaktadır.

Uyarı

Uyarı genel başlık mesajının yansıtılması olmayabilir, bir mesajın durumu ya da dönüştürme hakkında ilave bilgi taşımak için kullanılır. Bir yanıt birden fazla Uyarı başlığı taşıyabilir.

Warning : warn-code SP warn-agent SP warn-text SP warn-date

Misal

Aşağıdaki örnekte urlopen kullanarak yanıt almak için urllib2 modülünü kullanıyoruz. Daha sonra, bu yanıt için başlık bilgilerini almak için info () yöntemini uygularız.

import urllib2
response = urllib2.urlopen('http://www.tutorialspoint.com/python')
html = response.info()
print html

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000
Content-Type: text/html; charset=UTF-8
Date: Mon, 02 Jul 2018 11:06:07 GMT
Expires: Wed, 01 Aug 2018 11:06:07 GMT
Last-Modified: Sun, 01 Jul 2018 21:05:38 GMT
Server: ECS (tir/CDD1)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 22063
Connection: close