HTTP

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Was ist das?

  • HTTP steht für Hypertext Transfer Protocol und ist ein Protokoll, das die Kommunikation zwischen Webbrowsern und Webservern ermöglicht.
  • Es bildet die Grundlage für den Datenaustausch im World Wide Web und dient als Grundlage für den Zugriff auf verschiedene Ressourcen wie HTML-Seiten, Bilder, Videos und mehr.
  • HTTP arbeitet nach dem Client-Server-Modell, bei dem der Client (in der Regel ein Webbrowser) Anfragen an den Server sendet und der Server mit den angeforderten Daten oder Statuscodes antwortet.
  • HTTP definiert verschiedene Anfragemethoden wie GET, POST, PUT, DELETE und mehr.
  • Jede Methode dient einem spezifischen Zweck und ermöglicht es den Clients, Ressourcen auf einem Server abzurufen, zu senden, zu ändern oder zu löschen.
  • HTTP-Antworten enthalten Statuscodes, die das Ergebnis einer Anfrage anzeigen.
  • Die Statuscodes reichen von Information (1xx) über Erfolg (2xx), Weiterleitung (3xx) und Clientfehler (4xx) bis zu Serverfehlern (5xx).
  • Uniform Resource Identifier (URI) wird in HTTP verwendet, um Ressourcen im Web zu identifizieren und zu lokalisieren.
  • Sie bestehen aus einem Schema (z. B. http://), einem Hostnamen und optionalen Pfaden oder Abfrageparametern.
  • Seine Weiterentwicklung hat die Art und Weise geprägt, wie wir auf Informationen im Internet zugreifen und damit interagieren.

Geschichte

  • HTTP wurde 1991 von Tim Berners-Lee und seinem Team bei CERN eingeführt, um Hypertext-Dokumente abzurufen und anzuzeigen.
  • Die erste Version, HTTP/0.9, war ein einfaches Protokoll zur Abfrage von einfachen HTML-Dokumenten.
  • Später führte HTTP/1.0 erweiterte Funktionen wie Header, Caching und Unterstützung für andere Medientypen ein.
  • Der große Fortschritt bei HTTP erfolgte mit der Veröffentlichung von HTTP/1.1, das heute weit verbreitet ist.
  • HTTP/1.1 führte persistente Verbindungen, Pipelining, Inhaltsverhandlung und verbesserte Caching-Mechanismen ein, die die Effizienz und Leistung der Webkommunikation verbesserten.
  • Header enthalten zusätzliche Informationen über die Anfrage oder Antwort, wie z. B. den Inhaltstyp, die Inhaltslänge, Cache-Anweisungen und mehr.
  • Bemühungen wie HTTP/2 und HTTP/3 konzentrieren sich auf die Verbesserung von Leistung, Reduzierung der Latenz und Erhöhung der Sicherheit.
  • Diese Versionen führen Funktionen wie Multiplexing, Server-Push, Header-Kompression und effizientere Transportprotokolle ein.

Verschlüsselung

  • Um eine sichere Kommunikation über HTTP zu gewährleisten, wurde das HTTPS (HTTP Secure) Protokoll eingeführt, das Verschlüsselungsmechanismen verwendet, um Daten zwischen Client und Server zu schützen.
  • Das HTTPS-Protokoll basiert in der Regel auf SSL/TLS-Protokollen, um Verschlüsselung und Sicherheit für sensible Informationen bereitzustellen.

HTTP Server Implementierungen

Linux

  • Die bekanntesten Webserver-Engines unter Linux sind:
  • Apache
  • Nginx (ausgesprochen: engine x)

Windows