Archive for the ‘HTTP Protokoll’ Category

Die HTTP Protokoll Methode HEAD

Mit der HEAD Methode lassen sich Header Informationen abrufen. Diese Methode funktioniert ähnlich wie die GET Methode. In der Antwort des Server wird der Header an den Client (Browser) zurückgesandt. Mit HEAD wird meist geprüft, ob ein Dokument auf dem Webserver zur Verfügung steht. Für die Nutzung der HEAD Methode gibt es noch weitere Gründe. Die Dokumentengröße oder der Dokumententyp wird benötigt. Außerdem kann noch geprüft werden, ob das Dokument neu geladen werden muß.

HEAD Request zum Webserver senden

HEAD / HTTP/1.1
Accept-Encoding: gzip
Accept-Language: de
Accept: image/jpeg, image/gif, */*
Host: test-url.de
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Connectiion: Keep-Alive

Antwort des Webservers auf den HTTP Request

HTTP/1.1 200 OK
Date: Fri, 30 Dec 2011 19:38:01 GMT
Server: gws
Last-Modified: Fri, 30 Dec 2011 19:37:50 GMT
Content-length: 1267
Accept-Rages: bytes
Connection: close
Content-Type: text/html


Zurück zu den Client Methoden beim HTTP Request

Zurück zur Übersicht >> Einstieg ins HTTP Protokoll

 

Die HTTP Protokoll Methode POST

Mit Hilfe der POST Methode stellt der Browser (oder Client) Daten für den Webserver bereit. Meist sind dies Formulardaten. Die POST Methode wird nicht nur vom Browser eingesetzt, sondern von vielen weiteren Programmen.

Anwendungen die die POST Methode nutzen

  • Datenbankoperationen, wie zum Beispiel Datensatz anlegen, ändern oder löschen
  • CGI-Programme
  • Kommandozeilen nutzende Schnittstellen Programme
  • Gateways die mit Netzwerkdiensten zusammenarbeiten

Meist werden CGI-Programme die POST Methode benutzen und bilden eine Schnittstelle zu weiteren Ressourcen. Die an den Webserver zu übertragenen Daten befinden sich im Body des Dokuments. Die POST Requests beinhalten im Regelfall einen Content-type Header. Dieser beschreibt die Kodierung der URL.

POST Methode am Beispiel eines HTML Formulars

—————HTML Formular——————-

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<title>Beispiel der POST Methode</title>
</head>

<body>
<h2>Formular mit CGI Script übermittelt</h2>

<form name=”form1″ method=”post” action=”/cgi-bin/login.pl”>
<p>Name 
<label>
<input type=”text” name=”benutzer” id=”benutzer”>
</label>
</p>
<p>Passwort 
<label>
<input type=”text” name=”passwort” id=”passwort”>
</label>
</p>
<p>
<label>
<input type=”submit” name=”submit” id=”submit” value=”Senden”>
</label>
<label>
<input type=”reset” name=”Zurücksetzen” id=”Zurücksetzen” value=”reset”>
</label>
</p>
</form>

</body>
</html>

 ————Ende des HTML Formulars—————-

 

POST /cgi-bin/login.pl HTTP/1.1
Host: muster.de
Referer: http://www.muster.de/loginpage.html 
Accept-Encoding: gzip
Accept-Language: de
Accept: image/jpeg, image/gif, */*
Content-type: application/x-www-form-urlencoded
Content-length: 27

benutzer=demo&passwort=neu

Die Antwort des Webservers auf den HTTP Request

HTTP/1.1 200 OK
Date: Fri, 30 Dec 2011 19:38:01 GMT
Server: gws
Last-Modified: Fri, 30 Dec 2011 19:37:50 GMT
MIME-version: 1.0
Content-type: text/html
Content-length: 1234

Das übermittelte Antwortdokument …

 

Zurück zu den Client Methoden beim HTTP Request

Zurück zur Übersicht >> Einstieg ins HTTP Protokoll

 

Die HTTP Protokoll Methode GET

Die GET Methode des HTTP Protokolls ist der am meisten genutzte Request eines Browsers (oder Clients) zum Herunterladen eines Dokuments.

Antworten des Webservers auf einen GET Request

  • Der Webserver stellt eine Datei  zur Verfügung.
  • Das Ergebnis einer Server Transaktion wird zur Verfügung gestellt.
  • Daten eines Hardware Devices, wie zum Beispiel ein Mikrofon, werden übermittelt.
  • Das Ergebnis einer Server Erweiterung, wie Java Server Pages oder eines CGI Skripts, werden zur Verfügung gestellt.

Beispiel eines HTTP Requests mit der GET Methode

GET / HTTP/1.1
Accept-Encoding: gzip
Accept-Language: de
Accept: image/jpeg, image/gif, */*
Host: html-lernen.de
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Connectiion: Keep-Alive

Antwort des Webservers auf den HTTP Request

HTTP/1.1 200 OK
Date: Fri, 30 Dec 2011 19:38:01 GMT
Server: gws
Last-Modified: Fri, 30 Dec 2011 19:37:50 GMT
Content-length: 1267
Accept-Rages: bytes
Connection: close
Content-Type: text/html

Das übermittelte Dokument …

 

Zurück zu den Client Methoden beim HTTP Request

Zurück zur Übersicht >> Einstieg ins HTTP Protokoll

 

Die Client Methoden beim HTTP Request

Der Browser kann mit Hilfe des HTTP Protokolls Befehle an den Webserver senden. Dazu setzt der Browser (oder auch Webclient genannt) verschiedene Methoden zur Kommunikation ein.

Übersicht der Browser Methoden für HTTP Requests

Die Methoden werden in weiteren Posts beschrieben und mit dieser Webseite verlinkt. Das Glossar bietet eine Übersicht der benutzten Begriffe.

Zurück zur Übersicht >> Einstieg ins HTTP Protokoll

 

Einstieg ins HTTP Protokoll

Kenntnisse des HTTP Protokolls werden von Systemadministratoren und Internet Entwicklern benötigt. Webdesigner können mit diesen Kenntnissen Interaktionen optimieren. Daher werde mit diesem Post eine Artikelserie zum HTTP Protokoll beginnen.

Auf dem HTTP Protokoll basiert das World Wide Web. Es ist das Protokoll für das Handling und den Transport von Webdokumenten und Grafiken verwendet wird.

  • Mit Kenntnisse über das HTTP Protokoll können Sie die Kommunikation zwischen den Clients und den Webservern verstehen.
  • Zudem lassen sich Protokolle optimieren und dadurch Webdienste verbessern.

Die Entwicklung des HTTP Protokolls

Das HTTP Protokoll  zusammen mit HTML und dem URL Konzept von Tim Berners-Lee und Roy Fielding entwickelt. Die Entwicklung startete 1989 am CERN Institut. Im Jahr 1991 wurde die Version 0.9 des HTTP Protokolls fertiggestellt.  Der RFC 1945 enthielt die Anforderungen des HTTP/1.0 und wurde im Mai 1996  veröffentlicht. Eine Ergänzung gab es 1999 mit dem RFC 2616. Dieser entheilt die Spezifikation für das Protokoll HTTP/1.1.

Funktion der HTTP Transaktionen

Die Kommunikation von Webclient (Browser) und der Webserver werden mit Hilfe des HTTP Protokolls geführt. Hier ein Beispiel zu einer einfachen Transaktion.

einfache HTTP Kommunikation

einfache HTTP Kommunikation

 

1 – Webclient sendet Request an den Webserver

(Request-Zeile)GET / HTTP/1.1
Hostwww.google.de
User-AgentMozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accepttext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Languagede,en;q=0.8,ru;q=0.5,ja;q=0.3
Accept-Encodinggzip, deflate
Accept-CharsetISO-8859-1,utf-8;q=0.7,*;q=0.7
Connectionkeep-alive
Cache-Controlmax-age=0

Zeilennummer.     Beschreibung

  1. Die Request-Zeile fordert vom Webserver ein Dokument aus dem Root Pfad “/” an und verwendet die Version 1.1 des HTTP Protokolls.
  2. Hier wird dem Webserver mitgeteilt, wie der Hostname des Clients lautet. Bei HTTP1.1 ist dies eine Mußangabe. Der Webserver kann dadurch den Dokumenten-Pfad zu bestimmen.
  3. Der Webclient (Browser) gibt seine Versionsbezeichnung bekannt. In unserem Fall ist dies Mozilla Firefox V 9.01 auf Windows XP.
  4. In dieser Zeile wird mitgeteilt, welche Dokument Typen akzeptiert werden.
  5. Es werden die akzeptierten Sprachen bekanntgegeben. Dies können, wie in unserem Fall, auch mehrere Sprachen (de=Deutsch; en=Englisch; ru=Russisch; ja=Japanisch) sein.
  6. In dieser Zeile wird bekanntgegeben, dass der Webclient mit gzip und deflate umgehen kann.
  7. Mit Accept-Charset wird dem Server die vom Webclient akzeptierten Zeichensätze bekanntgegeben.
  8. Hier wird dem Webserver mitgeteilt, dass die Verbindung offen zu halten ist. Bei HTTP 1.1 ist dies die Standard Einstellung.
  9. Es wird mitgeteilt, nach wie vielen Sekunden seit dem Abruf das Dokument als veraltet zu betrachten ist.

2 – Response vom Webserver zum Webclient

(Status-Zeile)HTTP/1.1 200 OK
DateFri, 30 Dec 2011 19:38:01 GMT
Expires-1
Cache-Controlprivate, max-age=0
Content-Typetext/html; charset=UTF-8
Content-Encodinggzip
Servergws
Content-Length17133
X-XSS-Protection1; mode=block
X-Frame-OptionsSAMEORIGIN

 Zeilennummer.     Beschreibung

  1. Die Status-Zeile sagt dem Webclient dass die Version 1.1 des HTTP Protokolls verwendet wird. Dann folgt der Statuscode “200“.  Dieser sagt aus, dass das Dokument gefunden wurde und in dem Response enthalten ist.
  2. Die nächste Zeile zeigt das Server Datum und die aktuelle Uhrzeit an. Die Uhrzeit wird immer als Greenwich Mean Time (GMT) angegeben.
  3. Das Expires zeigt an, wie lange sich der Inhalt sich nicht ändern wird. In unserem Fall kann sich der Inhalt jederzeit ändern.
  4. Es wird mitgeteilt, nach wie vielen Sekunden seit dem Abruf das Dokument als veraltet zu betrachten ist.
  5. Der Content-Type gibt den Typ des gesendeten Dokuments an. In unserem Fall ist dies der Quelltext einer Webseite. Dieser Quelltext wird vom Browser in eine Webseite umgewandelt.
  6. In dieser Zeile wird bekanntgegeben, dass der Webserver das Dokument mit mit gzip gepackt hat.
  7. Der Server Typ ist “gws” (Google Webserver).
  8. Die Textlänge des Dokuments ist 17133 Zeichen.
  9. Hier wird durch “1” angezeigt, dass der Cross Side Scripting Filter eingeschaltet ist und der Modus auf blockieren eingestellt ist.
  10. Mit “X-Frame-Options” wird der Clickjacking Schutz gesteuert. Durch die Einstellung “SAMEORIGIN” wird die Webseite angezeigt, wenn keine Überlagerung der originalen Webseite mit einer weiteren Ebene stattfindet.

 

Weiter geht es mit den Client Methoden beim HTTP Request