HTTP

Aus VMS1 Tutorial

Wechseln zu: Navigation, Suche

HTTP steht für "Hypertext Transfer Protocol" und dient der Übertragung von Daten im Internet.

Inhaltsverzeichnis

Funktionsweise

HTTP ist ein zustandloses Frage-Antwort Protokoll. "Zustandslos" bedeutet hierbei, dass keine Verbindung zwischen einzelnen Anfragen hergestellt wird. Damit dennoch Benutzer, hier im Wiki beispielsweise, sich nicht bei jeder Anfrage neu einloggen müssen, werden zusätzlich sogenannte Sitzungsdaten übertragen.

Eine Anfrage könnet so aussehen:

GET /wiki/HTTP HTTP/1.1
Host: www.vms-tutorial.de

und die Antwort:

HTTP/1.1 200 OK
Date: Wed, 04 May 2011 10:52:32 GMT
Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch16 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8
X-Powered-By: PHP/5.2.0-8+etch16
Content-Language: de
Vary: Accept-Encoding,Cookie
X-Vary-Options: Cookie;string-contains=usr_web116_1UserID;string-contains=usr_web116_1_session,Accept-Encoding;list-contains=gzip
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: private, must-revalidate, max-age=0
Content-Encoding: gzip
Content-Length: 4002
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8

(...Inhalt des Artikels als HTML-Text...)

Anfrage Methoden

Verwendet werden im Prinzip hauptsächlich die 2 Methoden GET und POST, die sich primär in der Art der übertragenen Daten vom Client zum Server unterscheiden.

GET

GET-Parameter werden dierekt an die URL angehängt, beispielsweise wenn man diesen Artikel bearbeiten will:

http://www.vms-tutorial.de/wiki/HTTP?action=edit

Die Anfrage sieht dann etwa so aus:

GET /wiki/HTTP?action=edit HTTP/1.1
Host: www.vms-tutorial.de

Die Menge der damit übertragenene Daten ist allerdings begrenzt.

POST

POST wird in Formularen verwendet, sobald größere Mengen an Daten übertragen werden sollen (ein bearbeiteter Artikel hier im Wiki beispielsweise).

POST /wiki/HTTP?action=submit HTTP/1.1
Host: www.vms-tutorial.de
Content-Type: multipart/form-data; boundary=---------------------------129662187732226
Content-Length: 3069
-----------------------------129662187732226
Content-Disposition: form-data; name="wpSection"
-----------------------------129662187732226
Content-Disposition: form-data; name="wpStarttime"
20110504111117
-----------------------------129662187732226
Content-Disposition: form-data; name="wpEdittime"
20110504111117
-----------------------------129662187732226
Content-Disposition: form-data; name="wpScrolltop"
467
-----------------------------129662187732226
Content-Disposition: form-data; name="wpTextbox1"
HTTP steht für "Hypertext Transfer Protocol" und dient der Übertragung von Daten im Internet.
(....)

HTTP-Statuscodes

Je nach Status sendet der Webserver einen bestimmten 3-stelligen Code in seiner Antwort. Unterteilt sind diese Codes in 5 Klassen, erkennbar anhand der 1. Ziffer:

1XX - Information

Genutzt für Meldungen während eine Anfrage noch verarbeitet wird.

2XX - Erfolg

Verwendet, um die erfolgreiche Bearbeitung der Anfrage bekanntzugeben.

200 OK

Häufigster Statuscode, das Ergebnis wird direkt in der Antwort übertragen.

206 Partial Content

Für Anfragen, die nur einen Teil einer Datei (meist bei größeren Bildern) angefodert haben.

3XX - Umleitung

Der Browser muss selbst weitere Aktionen durchführen, um an die gewünschte Ressource zu kommen.

301 Moved Permanently

Umleitung von einer alten Adresse auf eine Neue. Beispielsweise wenn man nur http://vms-tutorial.de/ aufruft, wird man dadurch auf http://www.vms-tutorial.de/ umgeleitet.

304 Not Modified

Die angeforderte Datei hat sich nicht verändert, und muss daher nicht übertragen werden, der Browser nimmt sie in diesem Fall aus seinem Cache.

4XX – Client-Fehler

Es ist ein Fehler aufgetreten, den die Anfrage, also der Client verursacht hat.

401 Unauthorized

Anforderung einer Ressource, die durch Authentifizierung (bspw. mit .htaccess) geschützt ist, ohne gültige Anmeldedaten.

404 Not Found

Die angeforderte Ressource ist nicht vorhanden.

5XX – Server-Fehler

Ein Fehler, der bei der Verarbeitung der Anfrage im Server auftritt.

500 Internal Server Error

Allgemeiner Status Code für einen Server Fehler, nähere Informationen dazu finden sich meist im Log der Server Software.

Statistik

Im Monat April 2011 verteilten sich die Statuscodes auf alle Anfragen an vms-tutorial.de wie folgt:

Code 200 - OK 113.141
Code 206 - Partial Content 194
Code 301 - Moved Permanently 548
Code 302 - Found 1.364
Code 304 - Not Modified 17.080
Code 401 - Unauthorized 3
Code 404 - Not Found 268

RFC 2616, Status Code Definitions

Persönliche Werkzeuge