HTTP/-S Basics

URL (Uniform Resource Locator): Eine URL ist eine Anweisung, wie man eine Ressource im Internet aufruft.
Scheme: Bestimmt das Protokoll, das verwendet wird, um auf die Ressource zuzugreifen (z.B. HTTP, HTTPS, FTP).
User: Optionaler Teil, der einen Benutzernamen und ein Passwort enthält, wenn für den Zugriff eine Authentifizierung erforderlich ist.
Host: Die Domain oder IP-Adresse des Servers, den du erreichen möchtest.
Port: Der Port, über den die Verbindung hergestellt wird, normalerweise 80 für HTTP und 443 für HTTPS.
Path: Der Pfad oder Dateiname der Ressource, die du aufrufen möchtest.
Query String: Zusätzliche Informationen, die an den Pfad gesendet werden, um spezifische Daten anzufordern (z.B.
?id=1
).Fragment: Ein Verweis auf eine bestimmte Stelle auf der angeforderten Seite, um direkt zu einem bestimmten Abschnitt zu springen.

Making a Request
Wenn du eine Anfrage an einen Webserver stellst, kannst du das einfach mit einer Zeile wie "GET / HTTP/1.1" tun. Diese Anfrage fordert die Startseite einer Website an.
Für eine vollständige Anfrage, die mehr Informationen enthält, werden Headers verwendet, um dem Webserver zusätzliche Details mitzuteilen.
Beispiel-Anfrage
GET / HTTP/1.1
Host: tryhackme.com
User-Agent: Mozilla/5.0 Firefox/87.0
Referer: <https://tryhackme.com/>
Line 1: Fordert die Startseite an und teilt dem Server mit, dass HTTP Version 1.1 verwendet wird.
Line 2: Gibt an, dass die Website "tryhackme.com" aufgerufen werden soll.
Line 3: Teilt dem Server mit, dass der Firefox-Browser Version 87 verwendet wird.
Line 4: Sagt dem Server, dass die Anfrage von der Seite "https://tryhackme.com" stammt.
Line 5: Die leere Zeile signalisiert das Ende der Anfrage.
Beispiel-Antwort
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98
<html>
<head>
<title>TryHackMe</title>
</head>
<body>
Welcome To TryHackMe.com
</body>
</html>
Wenn der Server antwortet, sieht die Antwort so aus:
Line 1: Der Server verwendet HTTP 1.1 und der Status "200 OK" zeigt an, dass die Anfrage erfolgreich war.
Line 2: Zeigt die verwendete Server-Software und Version.
Line 3: Gibt das aktuelle Datum und die Uhrzeit des Servers an.
Line 4: Teilt mit, dass der Inhalt HTML ist.
Line 5: Zeigt die Länge des Inhalts an, um sicherzustellen, dass nichts fehlt.
Line 6: Die leere Zeile signalisiert das Ende der Antwort.
Lines 7-14: Der angeforderte Inhalt, in diesem Fall die Startseite.
HTTP Methods/Requests
GET Request: Wird verwendet, um Informationen von einem Webserver abzurufen.
POST Request: Wird verwendet, um Daten an einen Webserver zu senden und möglicherweise neue Einträge zu erstellen.
PUT Request: Wird verwendet, um Daten an einen Webserver zu senden und bestehende Informationen zu aktualisieren.
DELETE Request: Wird verwendet, um Informationen oder Einträge von einem Webserver zu löschen.
Headers
Request Headers (vom Client zum Server):
Host: Gibt an, welche Website auf einem Server mit mehreren Websites angefordert wird.
User-Agent: Sagt dem Server, welchen Browser du verwendest, damit die Seite richtig angezeigt wird.
Content-Length: Gibt an, wie viel Daten du an den Server sendest, z.B. in einem Formular.
Accept-Encoding: Teilt dem Server mit, welche Kompressionsmethoden dein Browser unterstützt, um die Datenübertragung zu optimieren.
Cookie: Sendet gespeicherte Daten an den Server, um dich wiederzuerkennen.
Response Headers (vom Server zum Client):
Set-Cookie: Speichert Informationen, die bei jedem weiteren Zugriff an den Server zurückgesendet werden.
Cache-Control: Bestimmt, wie lange der Browser die Antwort zwischenspeichern soll, bevor er sie erneut anfordert.
Content-Type: Informiert den Browser über den Typ der zurückgegebenen Daten (z.B. HTML, CSS, Bild).
Content-Encoding: Gibt an, welche Methode verwendet wurde, um die Daten für die Übertragung zu komprimieren.
Last updated