Hypertext Transfer Protocol

Den **Hypertext Transfer Protocol** (kuerz **HTTP**) ass en Netzwierkprotokoll, deen zur Iwwerdroung vun Daten, besonnesch zum Luede vu Websäiten aus dem World Wide Web, benotzt gëtt. An anere Wierder reegelt dëse Protokoll d'Kommunikatioun tëscht dem WWW-Client an dem WWW-Server.

De Protokoll gouf ufanks der 1990er Jore vum Tim Berners-Lee am Kärfuerschungsinstitut CERN zesumme mat der URL an HTML entwéckelt, woumat de *World Wide Web* gebuer war.

Den HTTP-Protokoll, mat deem de Benotzer selwer net a Kontakt kënnt, baut am TCP/IP-Referenzmodell um zouverlässegem Transmission Control Protocol op a läit sou op der véierter Schicht vun dësem Modell. HTTP ass en einfachen, séieren awer zoustandslose Protokoll, deen nom Request/Response Prinzip operéiert.

## Funktiounsweis
En HTTP-Client, wéi typescherweis de Webbrowser, lancéiert ëmmer d'Kommunikatioun. Wann op enger Websäit de Link zu der URL **' aktivéiert gëtt, da gëtt un dee [[Computer]] mam Numm **' eng Ufro (*Request*) geschéckt an opgefuerdert d'Datei **' zeréckzeschécken. Dobäi muss fir d'éischt den Numm **' iwwer DNS-Protokoll an eng IP-Adress ëmgesat ginn. Ass dat geschitt, gëtt eng TCP-Connexioun zum Standard-Port 80 tëscht dem Browser an dem Server établéiert an d'Ufro a Form vun enger HTTP-Ufro un de Server gestalt. De Server sengersäits lauschtert iwwer säi Port 80, datt ee Client him eng Ufro zouschéckt.

Beispill-Ufro:
`<pre>
GET /beispill.html HTTP/1.1
Host: lb.wikipedia.org</pre>`

Zousätzlech Informatiounen, wéi zum Beispill iwwer de Browser oder zur gewënschter Sprooch, kënnen iwwer Request-Headeren iwwerdroe ginn. Soubal de Client seng Ufro lancéiert huet, schéckt de Webserver sengersäits eng HTTP-Äntwert (*Response*) zeréck. Dës start mat der Versiounsnummer vum Protokoll a besteet aus den Header-Informatioune vum Server, enger eideler Zeil an dem Contenu vun der ugefuerderter Datei, respektiv mat enger Feelermeldung, wann d'Datei net um Server fonnt ka ginn oder wann de Benotzer net autoriséiert ass drop zouzegräifen.

Beispill-Äntwert:
`<pre>
HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: (Gréisst vu beispill.html a Byte)
Content-Language: de
Content-Type: text/html
Connection: close

(Contenu vu beispill.html)</pre>`

An der Praxis ass dacks nach ee Proxy-Server tëscht geschalt, wat déi ganz Kommunikatioun méi komplizéiert mécht. Ee Proxy-Server ass en Tëschespäicher (Cache), fir den Original-Server z'entlaaschten a spillt vis-à-vis vum Client de Server, vis-à-vis vum Server awer de Client.

## Protokollversiounen
* **HTTP/0.9** ass tëscht 1989 an 1990 entwéckelt ginn a war déi éischt Versioun vum Protokoll. Dës Versioun huet nëmmen d'GET-Methode ënnerstëtzt, déi just streng limitéiert Informatiounen un de Server schécke konnt.
* **HTTP/1.0** (RFC 1945) war déi éischt ausgeräifte Versioun aus dem Joer 1992, déi ënner anerem Feelermeldungen iwwerdroe konnt. Nieft der GET-Methode, ënnerstëtzt dës Versioun och d'POST-Methode, soudatt Informatiounen aus engem HTML-Formulaire a Form vun engem Dateblock un de Server geschéckt kënne ginn. HTTP/1.0 ënnerscheet bei Dokumenter tëscht verschiddene Medientyppen a ka sou net nëmmen einfach Text-Dokumenter ausliwweren. Mat Hëllef vun engem einfachen Authentifikationsmechanismus kënne Ressource virum onberechtegem Zougrëff geschützt ginn.
* **HTTP/1.1** (RFC 2068; RFC 2616) ass déi aktuell Versioun vun 1997. Si erlaabt persistent Verbindungen, soudatt net ëmmer eng nei TCP-Verbindung fir eng Ufro muss opgebaut ginn. Zousätzlech ënnerstetzt HTTP/1.1 eng Rëtsch vu weidere Request-Methoden, souwéi d'Iwwerdroe vun Dokumentfragmenten. Mat Hëllef vun der *Content Negotiation* kann de Server Ressource mat gläicher URL a verschiddene Varianten dem Client bereetstellen. Sou kann de Browser zum Beispill d'Informatioun direkt an der gewënschter Sprooch ausgeliwwert kréien. HTTP/1.1 stellt eng verbessert Authentifizéierung bereet, woubäi den Numm an d'Passwuert net méi am Kloertext iwwerdroe ginn.

## Cookies
Beim zoustandslosem HTTP-Protokoll ass d'Verbindung tëscht den zwee Kommunikatiounpartneren no enger erfollegräicher Dateniwwerdroung ofgeschloss. An anere Wierder ass all Interaktioun onofhängeg vun der vireger Aktioun a kann déi nächst Interaktiounen net beaflossen. Dës Virgoensweis stellt awer zum Beispill beim E-Commerce Problemer duer. Wéi soll de Server sech mierken, wat ee Benotzer alles a sengem Weenchen huet?

Mat Cookies soll dëse Problem aus der Welt geschaf ginn. Cookies ginn dem zoustandslosem HTTP-Protokoll d'Méiglechkeet, Informatiounen, déi de Client vum Server geliwwert kritt, a Form vu klengen Dateien op der Clientsäit ze späicheren an dës Informatiounen an enger spéiderer Ufro un de Server nees z'iwwerginn. Sou kann eng logesch zesummenhängend Sëtzung iwwer verschidde physikalesch Verbindungen opgebaut ginn.

## Literatur
* Christoph Meinel, Harald Sack: ''WWW - Kommunikation, Internetworking, Web-Technologien''. Springer-Verlag, 2004.
* Andrew S. Tanenbaum: *Computer Networks*. Prentice Hall, 2002.

## Kuckt och
* HTTPS

## Um Spaweck