HTTP
IT-Zertifikat Universität zu Köln
Allgemeine Technologien II
Dozent: Patrick Sahle
Referent: Fabian Heerbaart
Was ist HTTP?




Hypertext Transfer Protokoll
Protokoll zum Übertragen von Hypertext-Dokumenten
(von PC zu PC) (hpts. Laden von Webseiten in Browser)
definiert Reihe von Regeln und Mechanismen die ein
Computer(-Programm) verwenden kann zum Anfordern
oder Senden bestimmter Dateien
Datenerfrager (der Client) seinen Wunsch nach Daten
ausdrücken kann und der Datenlieferer (der Server)
versteht, welche Daten gewünscht sind und diese dann
auch in geeigneter Form liefern kann Kommunikation
Geschichte


1989 von Tim Berners-Lee zusammen mit der URL und
der HTML entwickelt
Als Transportprotokoll meist TCP verwendet
Ablauf

Als erstes baut der Client eine Verbindung zum Server auf.
Dies geschieht meist mittels des TCP/IP-Protokolls. Ist die
Verbindung zustande gekommen, beginnt der
Datenaustausch. Der Client schickt dazu eine Anfrage
(Request) an den Server, in der er um die entsprechende
Datei bittet und dann Antwort (Response)
Exkurs: OSI-Modell




Als Designgrundlage von Kommunikationsprotokollen
entwickelt (von ISO
Aufgaben der Kommunikation in sieben aufeinander
aufbauende Schichten (layers) unterteilt
Jede Schicht ihre Aufgaben, die die
Kommunikationsprotokolle realisieren müssen
Die konkrete Umsetzung nicht vorgegeben Somit für jede
Schicht zahlreiche Protokolle.
OSI-Modell
Der Abstraktionsgrad der Funktionalität nimmt von Schicht 7 bis Schicht 1
ab
Übertragungsweise


Nachricht setzt sich zusammen aus:
Header: Informationen über den Nachrichtenkörper (z.B.
Kodierungen od. Inhaltstyp etwa HTTP-Cookies und
Metadaten wie Dateigröße,HTTP-Server- und User-AgentKennung) für korrekte Interpretation durch Empfänger

Body: enthält die Nutzdaten

Bsp.: http://www.example.net/infotext.html

An Coputer mit Hostname www.example.net Anfrage die
Ressource infotext.html zu senden
Übertragungsweise


Der Name www.example.net wird dabei zuerst über das
DNS-Protokoll in eine IP-Adresse umgesetzt.
Übertragen werden Dateien in Seitenbeschreibungssprachen wie (X) HTML und alle ihre Ergänzungen wie
Bilder, Stylesheets (CSS), Skripte etc., die der Browser in
einer lesbaren Darstellung miteinander verbindet
Request Methoden:
HTTP-Get und POST



Informationssendung:
HTTP-GET: Die Daten sind Teil der URL und bleiben
deshalb beim Speichern oder der Weitergabe des Links
erhalten.
HTTP-POST: Übertragung der Daten mit einer speziell
dazu vorgesehenen Anfrageart in den HTTP-Kopfdaten,
sodass sie in der URL nicht sichtbar sind.
Beispiel GET-Methode

GET /index.html HTTP/1.1

Host: www.html-world.de

User-Agent: Mozilla/4.0

Accept: image/gif, image/jpeg, */*

Connection: Keep-Alive

1. Zeile:



gibt die Datei an, die abgerufen werden soll und wie das
geschehen soll (GET = Methode)
Danach:
Header, wo Zusatzinformationen zur Verarbeitung, der
Verbindung oder gewünschten Dateiformaten
Beispiel GET-Methode

HTTP/1.1 200 OK

Date: Thu, 15 Jul 2004 19:20:21 GMT

Server: Apache/1.3.5 (Unix)

Accept-Ranges: bytes

Content-length: 46

Connection: close

Content-type: text/html

<h1>Antwort</h1>

<p>Ich bin eine Antwort</p>


1. Zeile: zu verwendende HTTP-Version, Response-Code
(gibt Übertragungsstatus an) und dieser in Textform
Danach: Response-Header mit Zusatzinformationen
Beispiel POST-Methode

<form action="/send.php" method="post">

Vorname: <input type="text" name="vorname" value="Max"><br>

Name: <input type="text" name="name" value="Mustermann"><br>

E-Mail: <input type="text" name="mail" value="[email protected]"><br>

<input type="submit" value="Abschicken">

</form>


Hier: Formular mit 3 Eingabefeldern (Vorname, Name und
E-Mail) und Absende-Button und so eingestellt, dass es die
Daten an die Datei /send.php schickt und die POSTMethode dazu verwendet
Dann Formularnamen und die dazugehörigen Werte in
einen durch Kaufmanns-Und getrennten Datensatz
gebracht und Daten zusätzlich in das URL-codierte
Format umgewandelt
Beispiel POST-Methode

POST /send.php HTTP/1.1

Host: meinserver.de

User-Agent: Mozilla/4.0

Accept: image/gif, image/jpeg, */*

Content-type: application/x-www-form-urlencoded

Content-length: 51

Connection: close

Vorname=Max&name=Mustermann&mail=max%40muster%2Ede

Unterschied Get-Anfrage: Daten angehangen

Antwort wie Antwort bei einer GET-Anfrage

Vorname=Max&name=Mustermann&mail=max