HTTP / HTTPS
HTTP (Hypertext Transfer Protocol)
ist ein Protokoll, mit dem Daten zwischen einem Client und einem Server über das Internet übertragen werden. Es müssen Zustände mit übertragen werden (z.B. Cookies). Über HTTP lassen sich Requests und Responses senden.
Request / Response
Ein Request besteht aus einem Method, einem URI und einem Protokoll.
GET /index.html HTTP/1.1
Host: www.google.com Eine Response besteht aus einem Status Code, einem Protokoll und einem Body.
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Content-Language: de HTTP-Methoden
| Method | Beschreibung |
|---|---|
| GET | Fordert eine URI an |
| POST | Sendet Daten |
| PUT | Aktualisiert eine Ressource |
| DELETE | Löscht eine Ressource |
| PATCH | Aktualisiert eine Teilressource |
| HEAD | Fragt die Header einer Ressource ab |
| CONNECT | Öffnet eine Tunnel |
HTTPS (Hypertext Transfer Protocol Secure)
Während HTTP ein unverschlüsseltes Protokoll ist, ist HTTPS ein verschlüsseltes Protokoll. Bei HTTP wird eine Anfrage vom Client an den Server gesendet und der Server antwortet mit den angeforderten Elementen. Hierbei findet keine Verschlüsselung statt und die Daten werden in Klartext übertragen. Außerdem findet keine Authentifizierung statt, ob der Client mit dem richtigen Server kommuniziert. Und die Daten können während der Übertragung abgefangen und manipuliert werden.
HTTPS löst diese Probleme durch Verschlüsselung und Authentifizierung.
Es wird zuerst eine Verbindung zwischen Client und Server hergestellt mit einem TLS-Handshake.
Daten werden on-the-fly verschlüsselt und der Server wird authentifiziert.
Nur der Client, der die Daten angefordert hat, kann die Daten entschlüsseln.
URI (Uniform Resource Identifier)
Eine URI ist eine Zeichenfolge, die ein Objekt oder ein Dienst identifiziert.
https://www.google.com/search?q=URI#section-1https: Protokoll (z.B. HTTP, HTTPS, ftp)www.google.com: Hostsearch: Pfadq=URI: Query#section-1: Fragment
Status Codes
| Code | Beschreibung |
|---|---|
| 200 | OK |
| 404 | Not Found |
| 500 | Internal Server Error |
Unterschiede
HTTP ist ein unverschlüsseltes Protokoll und HTTPS ist ein verschlüsseltes Protokoll.
Die beiden Protokolle laufen auf unterschiedlichen Ports.
- HTTP: 80
- HTTPS: 443