Python - HTTP-Header

Die Anforderung und Antwort zwischen Client und Server umfasst Header und Body in der Nachricht. Header enthalten protokollspezifische Informationen, die am Anfang der Rohnachricht angezeigt werden, die über die TCP-Verbindung gesendet wird. Der Nachrichtentext wird durch eine Leerzeile von den Kopfzeilen getrennt.

Beispiel für Header

Die Header in der http-Antwort können in folgende Typen eingeteilt werden. Unten finden Sie eine Beschreibung des Headers und ein Beispiel.

Cache-Kontrolle

Das Feld Cache-Control General-Header wird verwendet, um Anweisungen anzugeben, die vom gesamten Caching-System befolgt werden MÜSSEN. Die Syntax lautet wie folgt:

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

Ein HTTP-Client oder -Server kann das verwenden Cache-controlAllgemeiner Header zum Angeben von Parametern für den Cache oder zum Anfordern bestimmter Arten von Dokumenten aus dem Cache. Die Caching-Anweisungen werden in einer durch Kommas getrennten Liste angegeben. Zum Beispiel:

Cache-control: no-cache

Verbindung

Im Feld Connection General-Header kann der Absender Optionen angeben, die für diese bestimmte Verbindung gewünscht werden und nicht von Proxys über weitere Verbindungen kommuniziert werden dürfen. Es folgt die einfache Syntax für die Verwendung des Verbindungsheaders:

Connection : "Connection"

HTTP / 1.1 definiert die Verbindungsoption "Schließen", mit der der Absender signalisiert, dass die Verbindung nach Abschluss der Antwort geschlossen wird. Zum Beispiel:

Connection: close

Standardmäßig verwendet HTTP 1.1 dauerhafte Verbindungen, bei denen die Verbindung nach einer Transaktion nicht automatisch geschlossen wird. HTTP 1.0 hingegen verfügt standardmäßig nicht über dauerhafte Verbindungen. Wenn ein 1.0-Client dauerhafte Verbindungen verwenden möchte, verwendet er diekeep-alive Parameter wie folgt:

Connection: keep-alive

Datum

Alle HTTP-Datums- / Zeitstempel MÜSSEN ausnahmslos in Greenwich Mean Time (GMT) dargestellt werden. HTTP-Anwendungen dürfen eine der folgenden drei Darstellungen von Datums- / Zeitstempeln verwenden:

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-Codierung

Das Feld " Transfer-Encoding General-Header" gibt an, welche Art von Transformation auf den Nachrichtentext angewendet wurde, um ihn sicher zwischen dem Absender und dem Empfänger zu übertragen. Dies ist nicht dasselbe wie die Inhaltscodierung, da Übertragungscodierungen eine Eigenschaft der Nachricht und nicht des Entitätskörpers sind. Die Syntax des Transfer-Encoding-Headerfelds lautet wie folgt:

Transfer-Encoding: chunked

Bei allen Übertragungscodierungswerten wird die Groß- und Kleinschreibung nicht berücksichtigt.

Aktualisierung

Mit dem Upgrade- General-Header kann der Client angeben, welche zusätzlichen Kommunikationsprotokolle er unterstützt und verwenden möchte, wenn der Server es für geeignet hält, Protokolle zu wechseln. Zum Beispiel:

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

Das Feld Upgrade-Header soll einen einfachen Mechanismus für den Übergang von HTTP / 1.1 zu einem anderen inkompatiblen Protokoll bereitstellen.

Über

Der Via- General-Header muss von Gateways und Proxys verwendet werden, um die Zwischenprotokolle und Empfänger anzugeben. Beispielsweise könnte eine Anforderungsnachricht von einem HTTP / 1.0-Benutzeragenten an einen internen Proxy mit dem Codenamen "fred" gesendet werden, der HTTP / 1.1 verwendet, um die Anforderung an einen öffentlichen Proxy unter nirgendwo.com weiterzuleiten, der die Anforderung von abschließt Weiterleitung an den Ursprungsserver unter www.ics.uci.edu. Die von www.ics.uci.edu empfangene Anfrage hätte dann das folgende Via-Header-Feld:

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

Das Feld Upgrade-Header soll einen einfachen Mechanismus für den Übergang von HTTP / 1.1 zu einem anderen inkompatiblen Protokoll bereitstellen.

Warnung

Der allgemeine Header " Warnung" wird verwendet, um zusätzliche Informationen zum Status oder zur Umwandlung einer Nachricht zu enthalten, die möglicherweise nicht in der Nachricht enthalten sind. Eine Antwort kann mehr als einen Warnheader enthalten.

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

Beispiel

Im folgenden Beispiel verwenden wir das Modul urllib2, um eine Antwort mit urlopen zu erhalten. Als nächstes wenden wir die info () -Methode an, um die Header-Informationen für diese Antwort abzurufen.

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

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

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