Kurse:HTTP
- = Einführung in HTTP =
HTTP ist ein Anwendungsprotokoll, das einen Regelsatz für das Senden von Anfragen vom Browser zum Server und das Senden von Antworten vom Server zum Browser definiert. Ursprünglich von Tim Berners-Lee entwickelt, wurde es später von der IETF (Internet Engineering Task Force) und dem W3C (World Wide Web Consortium) standardisiert.
HTTP-Antwort
Antwort-Startzeile
Enthält die HTTP-Version, den Statuscode und die Statusbeschreibung.
- HTTP-Version: 1/1 | 2 | 3
- Statuscode: 101 | 200 | 302 | 400 | 401 | 404 | 500
- Statusbeschreibung: Switching Protocols | OK | Found | Bad Request | Unauthorized | Not Found | Internal Server Error
HTTP-Antwort-Statuscodes
| 1xx | Informationell |
| 101 | Switching Protocols |
| 2xx | Erfolg |
| 200 | OK |
| 3xx | Umleitung |
| 302 | Found |
| 304 | Not Modified |
| 4xx | Client-Fehler |
| 400 | Bad Request |
| 401 | Unauthorized |
| 404 | Not Found |
| 5xx | Server-Fehler |
| 500 | Internal Server Error |
HTTP-Antwort-Header
- Date
- Datum und Uhrzeit der Antwort. z.B.: Tue, 15 Nov 1994 08:12:31 GMT
- Server
- Name des Servers. z.B.: Server=Kestrel
- Content-Type
- MIME-Typ des Antwort-Hauptteils (Body). z.B.: text/plain, text/html, application/json, application/xml etc.
- Content-Length
- Länge (in Bytes) des Antwort-Hauptteils (Body). z.B.: 100
- Cache-Control
- Gibt die Anzahl der Sekunden an, die die Antwort im Browser zwischengespeichert (gecacht) werden kann. z.B.: max-age=60
- Set-Cookie
- Enthält Cookies, die an den Browser gesendet werden sollen. z.B.: x=10
- Access-Control-Allow-Origin
- Wird verwendet, um CORS (Cross-Origin Resource Sharing) zu aktivieren. z.B.: Access-Control-Allow-Origin: http://www.example.com
- Location
- Enthält die URL, zu der umgeleitet werden soll. z.B.: http://www.example-redirect.com
HTTP-Anfrage
HTTP-Anfrage-Header
- Accept
- Repräsentiert den MIME-Typ des Antwortinhalts, den der Client akzeptiert. z.B.: text/html
- Accept-Language
- Repräsentiert die natürliche Sprache des Antwortinhalts, die der Client akzeptiert. z.B.: en-US
- Content-Type
- MIME-Typ des Anfrage-Hauptteils (Body). z.B.: text/x-www-form-urlencoded, application/json, application/xml, multipart/form-data
- Content-Length
- Länge (in Bytes) des Anfrage-Hauptteils (Body). z.B.: 100
- Date
- Datum und Uhrzeit der Anfrage. z.B.: Tue, 15 Nov 1994 08:12:31 GMT
- Host
- Domainname des Servers. z.B.: www.example.com
- User-Agent
- Details zum Browser (Client). z.B.: Mozilla/5.0 Firefox/12.0
- Cookie
- Enthält Cookies, die an den Server gesendet werden sollen. z.B.: x=100
HTTP-Anfragemethoden
- GET
- Anfragen zum Abrufen von Informationen (Seite, Entitätsobjekt oder eine statische Datei).
- POST
- Sendet ein Entitätsobjekt an den Server; im Allgemeinen wird es in die Datenbank eingefügt.
- PUT
- Sendet ein Entitätsobjekt an den Server; im Allgemeinen werden damit alle Eigenschaften (vollständiges Update) in der Datenbank aktualisiert.
- PATCH
- Sendet ein Entitätsobjekt an den Server; im Allgemeinen werden damit einige Eigenschaften (Teil-Update) in der Datenbank aktualisiert.
- DELETE
- Fordert das Löschen einer Entität in der Datenbank an.
HTTP GET vs. POST
GET
- Wird verwendet, um Daten vom Server abzurufen.
- Parameter befinden sich in der Anfrage-URL (nur als Query-String).
- Es kann nur eine begrenzte Anzahl von Zeichen an den Server gesendet werden. Max: 2048 Zeichen.
- Wird hauptsächlich als Standardmethode für Anfragen zum Abrufen von Seiten, statischen Dateien usw. verwendet.
- Kann von Browsern / Suchmaschinen zwischengespeichert (gecacht) werden.
POST
- Wird verwendet, um Daten auf dem Server einzufügen.
- Parameter befinden sich im Anfrage-Hauptteil (Body) (als Query-String, JSON, XML oder Formulardaten).
- Es können unbegrenzt viele Daten an den Server gesendet werden.
- Wird hauptsächlich für Formularübermittlungen / XHR-Aufrufe verwendet.
- Kann nicht von Browsern / Suchmaschinen zwischengespeichert (gecacht) werden.