HTTP
Aus VMS1 Tutorial
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 |