Wie man aus HTTP-Headern das meiste herausholt

Das HTTP-Protokoll basiert auf Anforderungen (Requests) und darauf erfolgende Reaktionen (Responses). Ich habe mich entschlossen, den Dialog zwischen Server und Client mit Hilfe der populären Suchmaschine Google zu untersuchen und habe diese Seite besucht, während mein Packet-Monitor aktiviert war. Zuerst wurden folgende Informationen in Form von Datenpaketen an die Server von Google gesandt:

Dieser Request wurde in Form einer GET-Methode abgesandt, gefolgt von einigen Metadaten zur Definition von Browser-MIME, User Agent, Sprache und Kodierfähigkeiten. Der erste Header fordert eine Kommunikation mit den Google Servern über das HTTP-Protokoll Version 1.1 an. Der Header „Accept: */*“ teilt den Webservern von Google mit, dass mein Browser alle MIME-Typen empfangen kann. MIME steht für „Multipurpose Internet Mail Extension“, dient zur Identifizierung von Dateitypen (Bilder, Dokumente und Anwendungen) und hilft dem Browser und dem Betriebssystem bei der korrekten Handhabung dieser Dateien. Der Request „Accept-Language“ gibt an, dass mein Browser auf „American English“ eingestellt ist.

Der Header „Accept-Encoding“ teilt Googles Servern mit, dass die eingehende Datei mit GNU-ZIP (gzip), einer UNIX-basierten Komprimierungsmethode, kodiert werden kann. Zuletzt identifiziert der User Agent einen Mozilla-kompatiblen Browser (in speziellen Fall Internet Explorer). Hier ist der Header, der als Antwort von Google kam:

Der erste Header bestätigt das HTTP-Protokoll und die Version. Der Server sendet außerdem den Response-Code 200 um meinem Browser mitzuteilen, dass der Request erhalten wurde und alles in Ordnung ist. Es gibt viele mögliche Kombinationen von Server-Codes für eine Vielzahl von Fällen, darunter der leider nur allzu gut bekannte Code „404 – Page Not Found“. In den HTTP-Spezifikationen werden alle möglichen Kombinationen von Server-Codes erläutert.

Der Date-Header gibt uns das Systemdatum auf Googles Server bekannt. Der Cache-Control-Header gibt an, dass die Antwort für den Browser-Cache bestimmt ist und nicht für ein Shared Cache. Das ist sehr sinnvoll, denn Google will nicht, dass Gateway Server und Proxies in ihren Caches Kopien von Google Suchläufen für jeden Suchbegriff unter der Sonne speichern. Der Header „Content-Type“ bereitet meinen Browser auf den Empfang einer HTML-Seite vor, indem er den MIME-Typ der eingehenden Daten als „text/htm“ angibt. Dann wird der HTML-Code in den Browser geladen.

Die Startseite enthält eine GIF-Grafik mit dem Google Logo. Da das GIF-Bild ein anderer MIME-Typ (image/gif) als die HTML-Seite ist, muss Browser mehrere getrennte Requests senden um das Bild zu erhalten. Hier sind die Informationen, die zum Server von Google gesendet werden um das Bild zu erhalten:

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

3 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

3 Tagen ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

3 Tagen ago

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

3 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

4 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

4 Tagen ago