HTTP-Header verstehen
Ich muss mein Wissen über HTTP-Header auffrischen und beschloss, sie zu notieren. Dies sind meine Notizen zu HTTP-Headern.
Was sind HTTP-Header?
- Ein HTTP-Header ist ein Feld einer HTTP-Anfrage oder -Antwort, das zusätzlichen Kontext und Metadaten über die Anfrage oder Antwort weitergibt.
- Bei Headern wird die Groß-/Kleinschreibung nicht beachtet
- Es ist ein integraler Bestandteil dieser HTTP-Kommunikation
Anforderungsheader :
- die Informationen über die abzurufende Ressource enthält.
- Nicht alle Header, die in einer Anforderung erscheinen können, werden von der Spezifikation als Anforderungsheader bezeichnet. Beispielsweise wird
Content-Typeder Header als Darstellungsheader bezeichnet .
- Informationen über die Antwort speichern (z. B. ihren Standort)
- enthalten Informationen über den Hauptteil der Ressource, wie z. B. den MIME-Typ oder die angewendete Codierung/Komprimierung.
- Antwortheader wie oder
Agewerden verwendet, um einen detaillierteren Kontext der Antwort zu geben.LocationServer
- enthalten darstellungsunabhängige Informationen über Nutzdaten, einschließlich der Inhaltslänge und der für den Transport verwendeten Codierung.
- Kann sowohl in HTTP-Anforderungs- als auch in Antwortnachrichten vorhanden sein.
Um das Verhalten von Caches und Nicht-Caching-Proxys zu definieren, unterteilen wir HTTP-Header in zwei Kategorien:
- End-to-End- Header müssen an den endgültigen Empfänger einer Anfrage oder Antwort übermittelt werden.
- End-to-End- Header in Antworten müssen als Teil eines Cache-Eintrags gespeichert und in jeder Antwort übertragen werden, die aus einem Cache-Eintrag gebildet wird.
- Hop-by-Hop- Header sind nur für eine einzige Verbindung auf Transportebene von Bedeutung und werden nicht von Caches gespeichert oder von Proxys weitergeleitet.
- Verbindung
- Bleib am Leben
- Öffentlich
- Proxy-Authentifizierung
- Transfer-Kodierung
- Aktualisierung
Beispiel
Es gibt viele verschiedene HTTP-Header. Fahren wir mit einem Beispiel fort.
GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
Host: Informationen über die angeforderte Site zusammen mit der optionalen Portnummer. (Standard: 80)
User-Agent: enthält Informationen über den User-Agent, der die Anfrage gestellt hat.
Akzeptieren: Wird verwendet, um bestimmte Medientypen anzugeben, die für die Antwort akzeptabel sind. Beispielsweise verwendet ein Browser verschiedene Werte in einer Anfrage, wenn er ein CSS-Stylesheet, ein Bild, ein Video oder ein Skript abruft.
Accept-Language: Sprache, in der die Antwort erwartet wird. erlaubt mehrere Sprachen, getrennt durch Kommas. Accept-Encoding: normalerweise ein Komprimierungsalgorithmus), den der Client verstehen kann. ( ) Referer: Ermöglicht dem Client, die Adresse (URI) der Ressource anzugeben, von der die URL angefordert wurde.Accept-Language: de-CHdeflate, gzip
Connection: keep-alive bedeutet, dass alle nachfolgenden Anfragen an den Server dieselbe Verbindung verwenden. c lose schließt automatisch die Verbindung zwischen Host und Server, was bedeutet, dass alle nachfolgenden Anfragen eine neue TCP-Verbindung aufbauen müssen.
Und die Antwort könnte so sein
200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
Keep-Alive: timeout=5, max=997
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
Server: Apache
Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
X-Backend-Server: developer2.webapp.scl3.mozilla.com
X-Cache-Info: not cacheable; meta data too large
X-kuma-revision: 1085259
x-frame-options: DENY
Access-Control-Allow-Origin: Wenn Site A versucht, Inhalte von Site B abzurufen, kann Site B einen Access-Control-Allow-Origin-Antwortheader senden , um dem Browser mitzuteilen, dass der Inhalt dieser Seite für bestimmte Ursprünge zugänglich ist. Die beste Vorgehensweise ist , für diesen Header kein * anzugeben. Geben Sie statt * einfach Ihre Server an.
Etag: Es ist ein Entity-Tag. Wird als Kennung für eine bestimmte Version der Ressource verwendet . Wenn sich die Ressource an einer bestimmten URL ändert, mussEtag ein neuer Wert generiert werden. Durch einen Vergleich kann festgestellt werden, ob zwei Repräsentationen einer Ressource gleich sind. Für die Verwendung überprüfen Sie bitte diesen Link. Transfer-Kodierung
: Gibt die Form der Kodierung an. Es gibt verschiedene Werte wie chunked, compress, deflate und gzip. Mehrere Werte sind durch Kommas getrennt zulässig. ( Transfer-Encoding: gzip, chunked)
X-Frame-Optionen: Wird verwendet, um die Website vor Clickjacking-Angriffen zu schützen. Wenn Sie beispielsweise den Deny-Wert verwenden, können Sie <iframe> nicht in andere Websites einbetten. sameorigin ermöglicht die Einbettung in denselben Ursprung.
Status/Antwortcode:
- 1xx: Dies bedeutet, dass die Anfrage vom Server empfangen wurde und den Prozess fortsetzen muss.
- 2xx: Dies bedeutet, dass die Anfrage erfolgreich war.
- 3xx: Bedeutet Weiterleitung :)
- 4xx: Dies bedeutet, dass die Anfrage eine fehlerhafte Anfrage enthält, auf der Clientseite ist etwas falsch, nicht auf dem Server.
- 5xx: Es gibt ein Problem mit dem Server.
- Transfer -Encoding: gzip vs. Content-Encoding
- HEAD vs. GET Leistung und Unterschied
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
- https://www.freesoft.org/CIE/RFC/2068/143.htm

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































