HTTP (HyperText Transfer Protocol) ist eine Reihe von Regeln für die Kommunikation von Computern über das Netzwerk. Computerexperten haben HTTP entwickelt, um HTTP-Clients (z. B. Webbrowsern) die Anforderung von Informationen und Diensten von HTTP-Servern (Webservern) zu ermöglichen. Die aktuelle Version des HTTP-Protokolls ist ein zustandsloses Protokoll, und zustandslos bezieht sich auf das Web Es ist nicht erforderlich, eine dauerhafte Verbindung zwischen dem Browser und dem Webserver herzustellen. Das bedeutet, dass die Verbindung geschlossen wird und keine Informationen über die Verbindung gespeichert werden, wenn ein Client eine Anfrage an den Server stellt und der Webserver eine Antwort zurückgibt Server. Information.HTTP folgt dem Anforderungs-/Antwortmodell. Der Webbrowser sendet eine Anfrage an den Webserver, und der Webserver verarbeitet die Anfrage und gibt eine entsprechende Antwort zurück. Alle HTTP-Verbindungen sind als eine Reihe von Anfragen und Antworten strukturiert.
HTTP verwendet Inhaltstypen, was bedeutet, dass die vom Webserver an den Webbrowser zurückgegebenen Dateien verwandte Typen haben. Alle diese Typen basieren auf dem MIME Internet Mail Protocol, was bedeutet, dass der Webserver dem Webbrowser mitteilt, um welche Art von Datei es sich handelt, ob es sich um ein HTML-Dokument, ein GIF-Bild, eine Sounddatei oder eine eigenständige Anwendung handelt. Die meisten Webbrowser verfügen über eine Reihe konfigurierbarer Hilfsanwendungen, die dem Browser mitteilen, wie er mit verschiedenen vom Webserver gesendeten Inhaltstypen umgehen soll.
Der HTTP-Kommunikationsmechanismus besteht darin, dass während eines vollständigen HTTP-Kommunikationsprozesses die folgenden 7 Schritte zwischen dem Webbrowser und dem Webserver ausgeführt werden:
(1) Herstellen einer TCP-Verbindung
Bevor die HTTP-Arbeit beginnt, muss der Webbrowser zunächst eine Verbindung mit dem Webserver über das Netzwerk herstellen. Die Verbindung wird über TCP hergestellt. Dieses Protokoll und das IP-Protokoll bilden gemeinsam das Internet, die berühmte TCP/IP-Protokollfamilie , also das Internet Auch bekannt als TCP/IP-Netzwerk. HTTP ist ein Protokoll der höheren Schicht als TCP. Nach der Einrichtung des Protokolls der unteren Schicht kann daher im Allgemeinen zuerst die TCP-Verbindung hergestellt werden Nummer der TCP-Verbindung ist 80
(2) Der Webbrowser sendet einen Anforderungsbefehl an den Webserver
Sobald die TCP-Verbindung hergestellt ist, sendet der Webbrowser einen Anforderungsbefehl an den Webserver
Zum Beispiel: GET/sample/hello .jsp HTTP/1.1
(3) Der Webbrowser sendet Anforderungsheaderinformationen
Nachdem der Browser seinen Anforderungsbefehl gesendet hat Außerdem werden einige andere Informationen in Form von Header-Informationen an den Webserver gesendet. Anschließend sendet der Browser eine leere Zeile, um den Server darüber zu informieren, dass das Senden der Header-Informationen abgeschlossen ist.
(4) Antwort des Webservers
Nachdem der Client eine Anfrage an den Server gesendet hat, sendet der Server eine Antwort zurück an den Client,
HTTP/1.1 200 OK
Der erste Teil der Antwort ist die Protokollversionsnummer und der Antwortstatuscode
(5) Der Webserver sendet die Antwortheaderinformationen
Genau wie der Client Wenn der Benutzer zusammen mit der Anfrage Informationen über sich selbst sendet, sendet der Server auch zusammen mit der Antwort Daten über sich selbst und das angeforderte Dokument.
(6) Der Webserver sendet Daten an den Browser
Nachdem der Webserver die Header-Informationen an den Browser gesendet hat, sendet er eine leere Zeile, um anzuzeigen, dass die Header-Informationen gesendet wurden endet hier und sendet dann die vom Benutzer angeforderten tatsächlichen Daten in dem Format, das durch die Content-Type-Antwort-Header-Informationen beschrieben wird
(7) Der Webserver schließt die TCP-Verbindung
Unter Unter normalen Umständen sendet der Webserver eine Anforderung an den Browser. Nachdem der Server die Anforderungsdaten gesendet hat, schließt er die TCP-Verbindung. Wenn der Browser oder Server dann diese Codezeile in seine Header-Informationen einfügt
Verbindung:keep-alive
Nachdem die TCP-Verbindung gesendet wurde, bleibt sie geöffnet, sodass der Browser weiterhin Anfragen über dieselbe Verbindung senden kann. Das Aufrechterhalten der Verbindungen spart Zeit, die für den Aufbau einer neuen Verbindung für jede Anfrage erforderlich ist, und spart außerdem Netzwerkbandbreite.
HTTP-Anfrageformat
Wenn der Browser eine Anfrage an den Webserver stellt, übergibt er einen Datenblock an den Server, bei dem es sich um die Anfrageinformationen handelt Informationen bestehen aus drei Teilen:
l Anforderungsmethode URI-Protokoll/Version
l Anforderungsheader (Anforderungsheader)
l Anforderungstext
Folgendes ist eine HTTP-Anfrage. Beispiel:
GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh- cn
Verbindung:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(kompatibel;MSIE5.01;Windows NT5.0)
Akzeptieren- Codierung:gzip,deflate
Benutzername=jinqiao&password=1234
(1) Anforderungsmethode URI-Protokoll/Version
request Die erste Zeile lautet „Methoden-URL-Vorschlag/Version“: GET/sample.jsp HTTP/1.1
Im obigen Code stellt „GET“ die Anforderungsmethode und „/sample.jsp“ dar der URI und „HTTP/1.1 stellt das Protokoll und die Protokollversion dar
.
Gemäß dem HTTP-Standard können HTTP-Anfragen mehrere Anfragemethoden verwenden. Beispiel: HTTP1.1 unterstützt 7 Anforderungsmethoden: GET, POST, HEAD, OPTIONS, PUT, DELETE und TARCE. In Internetanwendungen sind GET und POST die am häufigsten verwendeten Methoden.
Die URL gibt die Netzwerkressource, auf die zugegriffen werden soll, vollständig an und gibt normalerweise nur ein relatives Verzeichnis zum Stammverzeichnis des Servers an. Sie beginnt also immer mit „/“ und schließlich deklariert die Protokollversion den Kommunikationsprozess Version über HTTP.
(2) Anforderungsheader
Der Anforderungsheader enthält viele nützliche Informationen über die Clientumgebung und den Anforderungstext. Beispielsweise kann der Anforderungsheader die vom Browser verwendete Sprache, die Länge des Anforderungstexts usw. angeben.
Accept:image/gif.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host :localhost
User-Agent:Mozila/4.0(kompatibel:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.
(3) Anforderungstext
Zwischen dem Anforderungsheader und dem Anforderungstext befindet sich eine Leerzeile. Diese Zeile ist sehr wichtig. Sie zeigt an, dass der Anforderungsheader beendet ist, und was folgt, ist der Anforderungstext. Der Anfragetext kann vom Kunden übermittelte Abfragezeichenfolgeninformationen enthalten:
Benutzername=jinqiao&password=1234
Im obigen Beispiel der HTTP-Anfrage enthält der Anfragetext nur eine Zeile mit Inhalt. Natürlich kann der HTTP-Anforderungstext in tatsächlichen Anwendungen mehr Inhalt enthalten.
HTTP-Anfragemethode Ich werde hier nur die GET-Methode und die POST-Methode besprechen
l GET-Methode
Die GET-Methode ist die Standard-HTTP-Anfragemethode. Wir verwenden die GET-Methode Um jeden Tag Formulare zu senden, werden die mit der GET-Methode übermittelten Formulardaten jedoch nur kurz codiert und als Teil der URL an den Webserver gesendet Daten bergen Sicherheitsrisiken. Zum Beispiel
Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB
Aus der obigen URL-Anfrage ist es einfach Erkennen Sie den Inhalt von Formulareinsendungen. (Was folgt?) Da die von der GET-Methode übermittelten Daten Teil der URL-Anfrage sind, darf die Menge der übermittelten Daten außerdem nicht zu groß sein
l POST-Methode
Die POST-Methode ist eine Alternative zur GET-Methode. Sie sendet hauptsächlich Formulardaten an den Webserver, insbesondere große Datenmengen. Die POST-Methode überwindet einige der Mängel der GET-Methode. Bei der Übermittlung von Formulardaten über die POST-Methode werden die Daten nicht als Teil der URL-Anfrage, sondern als Standarddaten an den Webserver übertragen. Dadurch werden die Mängel der GET-Methode behoben, bei der die Informationen nicht vertraulich behandelt werden können und das Datenvolumen groß ist zu klein. Aus Sicherheitsgründen und aus Gründen der Privatsphäre der Benutzer wird daher bei der Übermittlung von Formularen normalerweise die POST-Methode verwendet.
Wenn der Benutzer aus Programmiersicht Daten über die GET-Methode übermittelt, werden die Daten in der Umgebungsvariablen QUERY_STRING gespeichert, während die von der POST-Methode übermittelten Daten aus dem Standardeingabestream abgerufen werden können.
Die HTTP-Antwort ähnelt der HTTP-Anfrage und besteht ebenfalls aus drei Teilen, nämlich:
l Beschreibung des Protokollstatusversionscodes
l Antwortheader (Antwortheader)
l Antworttext
Das Folgende ist ein Beispiel für eine HTTP-Antwort:
HTTP/1.1 200 OK
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112
<html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>协议状态代码描述HTTP响应的第一行类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1服务器已经成功的处理了客户端发出的请求(200表示成功):
HTTP/1.1 200 OK响应头(Response Header)响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等:
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112
响应正文响应正文就是服务器返回的HTML页面:
<html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>
Nach dem Login kopieren
Zwischen dem Antwortheader und der Körper Sie müssen auch durch Leerzeilen getrennt werden.
l HTTP-Antwortcode
Der HTTP-Antwortcode wird auch Statuscode genannt, der den Status des Webservers widerspiegelt, der HTTP-Anfragen verarbeitet. Der HTTP-Antwortcode besteht aus 3 Ziffern. Die erste Ziffer definiert die Art des Antwortcodes:
1XX – Information (Information), die angibt, dass eine Webbrowser-Anfrage empfangen wurde und weiterverarbeitet wird
2XX-Erfolgreich, was darauf hinweist, dass die Benutzeranfrage korrekt empfangen, verstanden und verarbeitet wurde. Beispiel: 200 OK
3XX-Weiterleitung, was darauf hinweist, dass die Anfrage nicht erfolgreich war und der Kunde weitere Maßnahmen ergreifen muss.
4XX-Client-Fehler (Client-Fehler), was darauf hinweist, dass die vom Client übermittelte Anfrage einen Fehler aufweist. Beispiel: 404 NOT
Gefunden, was bedeutet, dass das Dokument, auf das in der Anfrage verwiesen wird, fehlerhaft ist nicht vorhanden.
5XX-Serverfehler (Serverfehler) bedeutet, dass der Server die Verarbeitung der Anfrage nicht abschließen kann: z. B. 500
Für uns Webentwickler kann die Beherrschung von HTTP-Antwortcodes dazu beitragen, das Debuggen von Webanwendungen zu verbessern Effizienz und Genauigkeit.
Sichere Verbindung
Eine der häufigsten Anwendungen von Webanwendungen ist der E-Commerce. Webserverseitige Programme können verwendet werden, um Menschen den Online-Einkauf zu ermöglichen. Es muss darauf hingewiesen werden, dass das Versenden von Informationen über das Internet standardmäßig nicht sicher ist . Wenn jemand passiert: Wie schlimm wäre es, wenn eine Nachricht, die Sie an einen Freund gesendet haben, abgefangen würde und er sie öffnen könnte und sich vorstellen könnte, dass sie Ihre Kreditkartennummer enthält. Glücklicherweise verfügen viele Webserver und Webbrowser über die Möglichkeit, sichere Verbindungen herzustellen. , damit sie sicher kommunizieren können.
Der gebräuchlichste Standard für die Bereitstellung sicherer Verbindungen über das Internet ist das Secure Sockets Layer (SSl)-Protokoll. Das SSL-Protokoll ist ein Protokoll der Anwendungsschicht (wie HTTP), das zum sicheren Austausch von Daten im Web verwendet wird. SSL verwendet ein Verschlüsselungssystem mit öffentlichen Schlüsseln. Im Wesentlichen bedeutet dies, dass jede Partei im Unternehmen über einen öffentlichen und einen privaten Schlüssel verfügt. Wenn eine Partei mit dem öffentlichen Schlüssel der anderen Partei verschlüsselt, kann nur die Person mit dem passenden Schlüssel ihn entschlüsseln. Einfach ausgedrückt bietet die Verschlüsselung mit öffentlichen Schlüsseln eine sichere Methode zum Austausch von Daten zwischen zwei Parteien. Nachdem die SSL-Verbindung hergestellt wurde, tauschen sowohl der Client als auch der Server öffentliche Schlüssel aus und überprüfen sie, bevor sie geschäftlichen Kontakt aufnehmen. Daten können sicher ausgetauscht werden.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in erholsames http. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!