Heim  >  Artikel  >  Backend-Entwicklung  >  Was bedeutet Header in Python?

Was bedeutet Header in Python?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-26 18:04:2819034Durchsuche

Normalerweise umfassen HTTP-Nachrichten Anforderungsnachrichten vom Client an den Server und Antwortnachrichten vom Server an den Client. Beide Nachrichtentypen bestehen aus einer Startzeile, einem oder mehreren Header-Feldern, einer Leerzeile zum Abschluss der Header-Felder und einem optionalen Nachrichtentext. Das HTTP-Header-Feld besteht aus vier Teilen: allgemeiner Header, Anforderungsheader, Antwortheader und Entitätsheader. Jedes Header-Feld besteht aus einem Domänennamen, einem Doppelpunkt (:) und einem Domänenwert. Bei Domänennamen wird die Groß-/Kleinschreibung nicht beachtet, bevor der Feldwert auf mehrere Zeilen erweitert werden kann, wobei am Anfang jeder Zeile mindestens ein Leerzeichen oder Tabulatorzeichen verwendet werden kann.

Was bedeutet Header in Python?

Allgemeines Header-Feld (allgemeiner Header)

Das allgemeine Header-Feld enthält Header-Felder, die sowohl von Anforderungs- als auch von Antwortnachrichten unterstützt werden Das allgemeine Header-Feld enthält die grundlegendsten Informationen zur Nachricht:

Verbindung: Ermöglicht dem Client und dem Server, Optionen im Zusammenhang mit der Anforderungs-/Antwortverbindung anzugeben.

Datum: Geben Sie einen Datums- und Zeitstempel an, um anzugeben, wann die Nachricht erstellt wurde.

MIME-Version: Gibt die vom Absender verwendete MIME-Version an.

Trailer: Wenn das Paket eine Chunked-Transfer-Kodierung verwendet, können Sie diesen Header verwenden, um den Satz von Headern aufzulisten, die sich im Trailer-Teil des Pakets befinden.

Übertragungskodierung: Informiert den Empfänger, welche Kodierungsmethode für die Nachricht verwendet wird, um eine zuverlässige Übertragung der Nachricht sicherzustellen.

Upgrade: Gibt die neue Version und das neue Protokoll an, für deren Verwendung der Absender möglicherweise ein „Upgrade“ durchführen möchte.

Via: Zeigt die Zwischenknoten an, durch die die Nachricht geleitet wird.

Die Erweiterung des allgemeinen Header-Felds erfordert, dass beide Kommunikationsparteien diese Erweiterung unterstützen. Wenn ein nicht unterstütztes allgemeines Header-Feld vorhanden ist, wird es im Allgemeinen als Entitäts-Header-Feld behandelt. Im Folgenden finden Sie eine kurze Einführung in mehrere häufig verwendete Header-Felder, die in UPnP-Nachrichten verwendet werden.

Cache-Control-Headerfeld

Cache-Control gibt den Caching-Mechanismus an, gefolgt von Anfragen und Antworten. Durch das Festlegen von Cache-Control in einer Anforderungsnachricht oder Antwortnachricht wird der Caching-Prozess während der Verarbeitung einer anderen Nachricht nicht geändert.

Cache-Anweisungen bei Anfragen umfassen „No-Cache“, „No-Store“, „Max-Age“, „Max-Stale“, „Min-Fresh“ und „Only-If-Cache“.

Die Anweisungen in der Antwortnachricht umfassen öffentlich, privat, kein Cache, kein Speichern, keine Transformation, erneute Überprüfung erforderlich, erneute Proxy-Überprüfung und maximales Alter.

Die Anweisungen in jeder Nachricht haben folgende Bedeutung:

Öffentlich gibt an, dass die Antwort in jedem Cache-Bereich zwischengespeichert werden kann.

Privat gibt an, dass die Antwortnachricht für einen einzelnen Benutzer ganz oder teilweise nicht vom gemeinsam genutzten Cache verarbeitet werden kann. Dadurch kann der Server nur eine Teilantwort eines Benutzers beschreiben, die für die Anfragen anderer Benutzer nicht gültig ist.

no-cache gibt an, dass die Anforderungs- oder Antwortnachricht nicht zwischengespeichert werden kann.

No-Store wird verwendet, um zu verhindern, dass wichtige Informationen unbeabsichtigt veröffentlicht werden. Das Senden in der Anforderungsnachricht führt dazu, dass sowohl die Anforderungs- als auch die Antwortnachrichten Caching verwenden.

max-age gibt an, dass der Client Antworten mit einer Lebensdauer erhalten kann, die nicht länger als die angegebene Zeit in Sekunden ist.

min-fresh gibt an, dass der Client Antworten mit einer Antwortzeit erhalten kann, die kürzer ist als die aktuelle Zeit plus die angegebene Zeit.

max-stale gibt an, dass der Client über den Timeout-Zeitraum hinaus Antwortnachrichten empfangen kann. Wenn Sie einen Wert für Max-Stale-Nachrichten angeben, kann der Client Antwortnachrichten empfangen, die den angegebenen Wert des Timeout-Zeitraums überschreiten.

Verwandte Empfehlungen: „Python-Video-Tutorial

Datums-Header-Feld

Datums-Header-Feld gibt den Zeitpunkt an, zu dem die Nachricht gesendet wurde gesendet wird. Das Beschreibungsformat der Zeit wird durch rfc822 definiert. Beispiel: Datum:Mo,31Dez200104:25:57GMT. Die durch Datum beschriebene Zeit stellt die Weltstandardzeit dar. Um sie in Ortszeit umzurechnen, müssen Sie die Zeitzone des Benutzers kennen.

Pragma-Header-Feld

Das Pragma-Header-Feld wird verwendet, um umsetzungsspezifische Anweisungen zu enthalten. Das am häufigsten verwendete ist Pragma:no-cache. Im HTTP/1.1-Protokoll ist seine Bedeutung dieselbe wie Cache-Control:no-cache.

Anforderungsnachricht

Die erste Zeile der Anforderungsnachricht hat das folgende Format:

MethodSPRequest-URISPHTTP-VersionCRLFMethod stellt die für die abgeschlossene Methode dar Anforderungs-URI: In diesem Feld wird die Groß-/Kleinschreibung beachtet und es enthält OPTIONS, GET, HEAD, POST, PUT, DELETE und TRACE.

Methoden GET und HEAD sollten von allen gängigen WEB-Servern unterstützt werden, die Implementierung aller anderen Methoden ist optional.

GET-Methode ruft die durch Request-URI identifizierten Informationen ab.

Die HEAD-Methode ruft auch die durch Request-URI identifizierten Informationen ab, kann jedoch bei der Antwort nicht den Nachrichtentext zurückgeben.

Die POST-Methode kann den Server auffordern, die in der Anfrage enthaltenen Entitätsinformationen zu empfangen, und kann zum Senden von Formularen und zum Senden von Nachrichten an Newsgroups, BBS, Mailgruppen und Datenbanken verwendet werden.

SP bedeutet Raum. Der Anforderungs-URI folgt dem URI-Format. Wenn dieses Feld ein Sternchen (*) ist, bedeutet dies, dass die Anforderung nicht für eine bestimmte Ressourcenadresse, sondern für den Server selbst gilt. HTTP-Version gibt die unterstützte HTTP-Version an, z. B. HTTP/1.1. CRLF steht für das Wagenrücklaufzeichen. Anforderungsheaderfelder ermöglichen es dem Client, zusätzliche Informationen über die Anforderung oder über den Client an den Server zu übergeben.

Das Anforderungsheaderfeld kann die folgenden Felder enthalten: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authorization, From, Host, If-Modified-Since, If-Match, If-None-Match, If -Range, If-Range, If-Unmodified-Since, Max-Forwards, Proxy-Autorisierung, Range, Referrer, User-Agent.

Die Erweiterung des Anforderungs-Header-Felds erfordert die Unterstützung beider Kommunikationsparteien. Wenn ein nicht unterstütztes Anforderungs-Header-Feld vorhanden ist, wird es im Allgemeinen als Entitäts-Header-Feld verarbeitet.

Typische Anforderungsnachricht:

GET http://download.google.com/somedata.exe 
Host: download.google.com 
Accept:/ 
Pragma: no-cache 
Cache-Control: no-cache 
Referer: http://download.google.com/ 
User-Agent:Mozilla/4.04en 
Range:bytes=554554-

Die erste Zeile des obigen Beispiels zeigt an, dass der HTTP-Client (möglicherweise ein Browser oder Downloader) die URL unter der angegebenen URL über erhält das GET-Methodendokument. Der braune Teil repräsentiert die Feldinformationen des Anforderungsheaders und der grüne Teil repräsentiert den allgemeinen Headerteil.

Host-Header-Feld

Host-Header-Feld gibt den Internet-Host und die Portnummer der angeforderten Ressource an und muss den Standort des ursprünglichen Servers oder Gateways der angeforderten Ressource angeben URL. HTTP/1.1-Anfragen müssen das Host-Header-Feld enthalten, andernfalls gibt das System den Statuscode 400 zurück.

Referer-Header-Feld

Referer-Header-Feld ermöglicht es dem Client, die Quellressourcenadresse des Anforderungs-URI anzugeben, wodurch der Server eine Fallback-Liste generieren kann kann zum Anmelden und Optimieren des Cache-Wartevorgangs verwendet werden. Darüber hinaus können unterbrochene oder fehlerhafte Verbindungen zu Wartungszwecken nachverfolgt werden. Wenn die angeforderte URL keine eigene URL-Adresse hat, kann der Referrer nicht gesendet werden. Wenn eine Teil-URL-Adresse angegeben wird, sollte diese Adresse eine relative Adresse sein.

Range-Header-Feld

Das Range-Header-Feld kann einen oder mehrere Unterbereiche der Entität anfordern. Beispielsweise stellt
die ersten 500 Bytes dar: Bytes=0-499
stellt die zweiten 500 Bytes dar: Bytes=500-999
stellt die letzten 500 Bytes dar: Bytes=-500
Gibt den Bereich an nach 500 Bytes: Bytes=500-
Das erste und letzte Byte: Bytes=0-0,-1
Mehrere Bereiche gleichzeitig angeben: Bytes=500-600,601-999

Aber Der Server kann diesen Anforderungsheader ignorieren. Wenn das unbedingte GET den Range-Anforderungsheader enthält, wird die Antwort mit dem Statuscode 206 (PartialContent) anstelle von 200 (OK) zurückgegeben.

User-Agent-Header-Feld

Der Inhalt des User-Agent-Header-Felds enthält die Benutzerinformationen, die die Anfrage gestellt haben.

Antwortnachricht

Die erste Zeile der Antwortnachricht hat das folgende Format:

HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF

HTTP -Version gibt die unterstützte HTTP-Version an, z. B. HTTP/1.1. Der Statuscode ist ein dreistelliger Ergebniscode. Reason-Phrase bietet eine einfache Textbeschreibung für den Status-Code. Der Statuscode wird hauptsächlich zur automatischen Maschinenidentifizierung verwendet, und die Begründungsphrase dient hauptsächlich dazu, den Benutzern das Verständnis zu erleichtern. Die erste Zahl des Statuscodes definiert die Kategorie der Antwort, und die letzten beiden Zahlen haben keinen Klassifizierungseffekt. Die erste Zahl kann 5 verschiedene Werte annehmen:

1xx: Informationsantwortklasse, die angibt, dass die Anfrage empfangen wurde und die Verarbeitung fortgesetzt wird

2xx: Antwortklasse für den Verarbeitungserfolg, die angibt, dass die Aktion erfolgreich empfangen wurde , Verstehen und akzeptieren

3xx: Antwortklasse umleiten, um die angegebene Aktion abzuschließen, muss die weitere Verarbeitung akzeptiert werden

4xx: Clientfehler, die Kundenanfrage enthält Syntaxfehler oder kann nicht ausgeführt werden korrekt

5xx: Serverseitiger Fehler, der Server kann eine korrekte Anfrage nicht korrekt ausführen

Das Antwort-Header-Feld ermöglicht es dem Server, zusätzliche Informationen zu übergeben, die nicht in die Statuszeile eingefügt werden können Beschreibt hauptsächlich Serverinformationen und Request-URI Weitere Informationen. Zu den Antwortheaderfeldern gehören „Alter“, „Standort“, „Proxy-Authenticate“, „Öffentlich“, „Retry-After“, „Server“, „Vary“, „Warnung“ und „WWW-Authenticate“. Die Erweiterung des Antwort-Header-Felds erfordert die Unterstützung beider Kommunikationsparteien. Wenn ein nicht unterstütztes Antwort-Header-Feld vorhanden ist, wird es im Allgemeinen als Entitäts-Header-Feld verarbeitet.

Typische Antwortnachricht:

HTTP/1.0200OK 
Date:Mon,31Dec200104:25:57GMT 
Server:Apache/1.3.14(Unix) 
Content-type:text/html 
Last-modified:Tue,17Apr200106:46:28GMT 
Etag:”a030f020ac7c01:1e9f” 
Content-length:39725426 
Content-range:bytes554554-40279979/40279980

Das obige ist der detaillierte Inhalt vonWas bedeutet Header in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet int in Python?Nächster Artikel:Was bedeutet int in Python?