Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!

青灯夜游
青灯夜游nach vorne
2020-06-17 11:06:042831Durchsuche

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!

1. Was ist ein Protokoll?

Ein Netzwerkprotokoll ist eine „Vereinbarung“ oder „Regel“, die zwischen Computern getroffen wird, um eine Netzwerkkommunikation zwischen Produktionsgeräten verschiedener Hersteller und Kommunikation zu erreichen Computer mit unterschiedlichen Betriebssystemen.

2. Was ist das HTTP-Protokoll?

HTTP-Protokoll ist die Abkürzung für Hyper Text Transfer Protocol, und der englische Name ist Hyper Text Transfer Protocol. Es handelt sich um ein Übertragungsprotokoll zur Übertragung der Hypertext Markup Language (HTML) von einem WEB-Server an einen lokalen Browser.

HTTP wurde ursprünglich entwickelt, um eine Möglichkeit zum Veröffentlichen und Empfangen von HTML-Seiten bereitzustellen.

HTPP hat mehrere Versionen, die derzeit am weitesten verbreitete Version ist HTTP/1.1.

3.HTTP-Prinzip

HTTP ist ein Protokoll, das Daten basierend auf dem TCP/IP-Kommunikationsprotokoll überträgt. Der übertragene Datentyp ist HTML Dateien, Bilddateien, Abfrageergebnisse usw.

Das HTTP-Protokoll wird im Allgemeinen in der B/S-Architektur () verwendet. Als HTTP-Client sendet der Browser alle Anfragen über die URL an den HTTP-Server, also den WEB-Server.

Wir nehmen den Besuch in Baidu als Beispiel:


Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
Zugriff auf den Baidu-Prozess

4.HTTP-Funktionen

  • Das http-Protokoll unterstützt den Client/Server-Modus und ist auch ein Anfrage/Antwort-Modus Vereinbarung.

  • Einfach und schnell: Wenn ein Client einen Dienst vom Server anfordert, muss er nur die Anforderungsmethode und den Pfad übermitteln. Häufig verwendete Anforderungsmethoden sind GET, HEAD und POST.

  • Flexibel: HTTP ermöglicht die Übertragung jeglicher Art von Datenobjekten. Die Art der Übermittlung wird durch Content-Type gekennzeichnet.

  • Keine Verbindung: Beschränken Sie jede Verbindung auf die Verarbeitung nur einer Anfrage. Nachdem der Server die Anfrage verarbeitet und die Antwort vom Client erhalten hat, wird die Verbindung getrennt. Dies ist jedoch nicht förderlich für die Aufrechterhaltung einer Sitzungsverbindung zwischen dem Client und dem Server. Um diesen Mangel auszugleichen, gibt es zwei Technologien zum Aufzeichnen des HTTP-Status entwickelt, eines heißt Cookie, eines heißt Session.

  • Zustandslos: Zustandslos bedeutet, dass das Protokoll keinen Speicher für die Transaktionsverarbeitung hat. Wenn für die nachfolgende Verarbeitung die vorherigen Informationen erforderlich sind, müssen diese erneut übertragen werden.

5. Der Unterschied zwischen URI und URL

HTTP verwendet Uniform Resource Identifiers (URI) zum Übertragen von Daten und Verbindungen herstellen.

  • URI: Uniform Resource Identifier Uniform Resource IdentifierCharacter

  • URL: Uniform Resource Location Uniform Resource Location Das -Symbol

URI wird verwendet, um eine bestimmte Ressource zu markieren. Über den URI können wir erkennen, was eine Ressource ist.

URL wird zum Auffinden bestimmter Ressourcen verwendet und markiert einen bestimmten Ressourcenstandort. Jede Datei im Internet hat eine eindeutige URL.

6. HTTP-Nachrichtenzusammensetzung

Nachrichtenzusammensetzung anfordern

1. Anfragezeile: einschließlich Anfragemethode, URL, Protokoll/Version

2. Anfragekopf

3 🎜>

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
Zusammensetzung der Antwortnachricht

1. Statuszeile

2. Antwortkopf


3. Antworttext

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
Zusammensetzung der Antwortnachricht

7. Gängige Anfragemethoden

  • GET: Fordern Sie die angegebenen Seiteninformationen an und geben Sie den Entitätskörper zurück.

  • POST: Senden Sie Daten an die angegebene Ressource zur Bearbeitung der Anfrage (z. B. Senden eines Formulars oder Hochladen einer Datei). Die Daten sind im Anfragetext enthalten. POST-Anfragen können zur Erstellung neuer Ressourcen und/oder zur Änderung bestehender Ressourcen führen.

  • HEAD: Ähnlich einer Get-Anfrage, außer dass die zurückgegebene Antwort keinen spezifischen Inhalt enthält, der zum Abrufen des Headers

  • PUT verwendet wird : Vom Client Die vom Client an den Server übertragenen Daten ersetzen den Inhalt des angegebenen Dokuments.

  • LÖSCHEN: Fordern Sie den Server auf, die angegebene Seite zu löschen.

Anfrage abrufen

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
Anfrage abrufen

Post-Anfrage

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
POST-Anfrage

Der Unterschied zwischen Post und Get:

  • beide enthalten Anforderungsheader und Anforderungszeilen, während Post mehr Anforderungstexte hat.

  • get wird hauptsächlich für Abfragen verwendet. Die Anforderungsparameter werden in der URL platziert und haben keinen Einfluss auf den Inhalt auf dem Server. Zum Senden wird Post verwendet, z. B. das Einfügen des Kontokennworts in den Text.

  • GET wird direkt am Ende der URL hinzugefügt, und der Inhalt ist direkt in der URL sichtbar, während POST innerhalb der Nachricht platziert wird und vom Benutzer nicht direkt gesehen werden kann.

  • Die Länge der von GET übermittelten Daten ist begrenzt, da die URL-Länge begrenzt ist. Die spezifische Längenbeschränkung hängt vom Browser ab. POST nicht.

8. Antwortstatuscode

Beim Zugriff auf eine Webseite sendet der Browser eine Nachricht an den Webserver fragen. Der Server, auf dem sich diese Webseite befindet, gibt als Antwort auf die Anfrage des Browsers einen Informationsheader zurück, der einen HTTP-Statuscode enthält.

Statuscode-Klassifizierung :

  • 1XX – Informationstyp, der Server empfängt die Anfrage und benötigt den Anforderer, um den Vorgang fortzusetzen.

  • 2XX- Erfolgstyp, die Anfrage wurde erfolgreich empfangen, verstanden und verarbeitet.

  • 3XX – Weiterleitung, weitere Maßnahmen sind erforderlich, um die Anfrage abzuschließen.

  • 4XX – Clientfehler, die Anfrage enthielt einen Syntaxfehler oder die Anfrage konnte nicht abgeschlossen werden.

  • 5XX – Serverfehler beim Verarbeiten der Anfrage durch den Server.

Allgemeine Statuscodes:

  • 200 OK – Kundenanfrage erfolgreich

  • 301 – Ressourcen (Webseiten usw.) werden dauerhaft auf andere URLs übertragen

  • 302 – Temporärer Sprung

  • 400 Bad Request – Die Client-Anfrage hat einen Syntaxfehler und kann vom Server nicht verstanden werden

  • 401 Unauthorized – Die Anfrage ist nicht autorisiert, dieser Statuscode muss vorhanden sein muss mit WWW identisch sein – das Header-Feld „Authentifizieren“ wird zusammen mit

  • 404 – Die angeforderte Ressource existiert nicht, möglicherweise wurde die falsche URL eingegeben

  • 500 – Ein unerwarteter Fehler ist im Server aufgetreten

  • 503 Server nicht verfügbar – Der Server kann die Anfrage des Clients derzeit nicht verarbeiten und kehrt möglicherweise zu ihr zurück nach einiger Zeit normal.

9. Warum https verwenden?

Im tatsächlichen Gebrauch verwenden die meisten Websites mittlerweile das https-Protokoll, was auch der zukünftige Entwicklungstrend des Internets ist. Das Folgende ist der Anmeldeanforderungsprozess einer über Wireshark erfassten Blog-Website.

Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
Blog-Anmeldepaketerfassung

Sie können sehen, dass das zugegriffene Konto und das Passwort alle im Klartext übertragen werden, so die Anfrage Vom Client gesendete Daten können von Kriminellen leicht abgefangen und ausgenutzt werden. Daher ist die Verwendung von HTTP nicht für die Übertragung vertraulicher Informationen wie verschiedener Kontonummern und Passwörter geeignet Protokoll zur Übertragung privater Informationen.

Im Allgemeinen gibt es die folgenden Probleme in http:

  • Anfrageinformationen werden im Klartext übertragen, der leicht durch Abhören abgefangen werden kann.

  • Die Integrität der Daten wird nicht überprüft und kann leicht manipuliert werden

  • Die Identität der anderen Partei wird nicht überprüft, und das ist so ein Risiko des Identitätswechsels

10. Was ist HTTPS?

Um die oben genannten Probleme von HTTP zu lösen, Es wird HTTPS verwendet.

HTTPS-Protokoll (HyperText Transfer Protocol over Secure Socket Layer): Im Allgemeinen als HTTP+SSL/TLS verstanden, wird die Identität des Servers durch das SSL-Zertifikat überprüft und die Kommunikation zwischen dem Browser und dem Server verschlüsselt.

Was ist SSL?

SSL (Secure Socket Layer): Das 1994 von Netscape entwickelte SSL-Protokoll liegt zwischen dem TCP/IP-Protokoll und verschiedenen Protokollen der Anwendungsschicht. Es ist eine Datenkommunikation, die Sicherheitsunterstützung bietet .

TLS (Transport Layer Security, Transport Layer Security): Sein Vorgänger ist SSL. Die ersten Versionen (SSL 1.0, SSL 2.0, SSL 3.0) wurden von Netscape entwickelt und ab 3.1 im Jahr 1999 übernommen IETF hat es standardisiert und umbenannt, und jetzt gibt es drei Versionen: TLS 1.0, TLS 1.1 und TLS 1.2. SSL3.0 und TLS1.0 werden aufgrund von Sicherheitslücken selten verwendet. TLS 1.3 wird große Änderungen aufweisen und befindet sich noch im Entwurfsstadium. Die am weitesten verbreiteten sind TLS 1.1 und TLS 1.2.

Geschichte der SSL-Entwicklung (Internet-verschlüsselte Kommunikation)

1994 entwickelte NetSpace Version 1.0 des SSL-Protokolls (Secure Sockets Layout), dies war jedoch nicht der Fall freigegeben.

2. 1995 veröffentlichte NetSpace die SSL/2.0-Version und schnell wurden schwerwiegende Schwachstellen entdeckt

3. 1996 wurde die SSL/3.0-Version veröffentlicht

4 , 1999 wurde die SSL-Upgrade-Version TLS/1.0 veröffentlicht, die derzeit die am weitesten verbreitete Version ist

5 2006 und 2008 wurden TLS/1.1 und TLS/1.2 veröffentlicht

11. Wie nutzt der Browser HTTPS zur Datenübertragung?


Lernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!
HTTPS-Datenübertragungsprozess

1 Zunächst greift der Client über die URL auf den Server zu, um eine SSL-Verbindung herzustellen.

2. Nach Erhalt der Anfrage des Clients sendet der Server eine Kopie der von der Website unterstützten Zertifikatsinformationen (das Zertifikat enthält den öffentlichen Schlüssel) an den Client.

3. Der Server des Clients beginnt mit der Aushandlung der Sicherheitsstufe der SSL-Verbindung, also der Stufe der Informationsverschlüsselung.

4. Der Browser des Clients erstellt einen Sitzungsschlüssel basierend auf der von beiden Parteien vereinbarten Sicherheitsstufe, verwendet dann den öffentlichen Schlüssel der Website, um den Sitzungsschlüssel zu verschlüsseln und überträgt ihn an die Website.

5. Der Server verwendet seinen eigenen privaten Schlüssel, um den Sitzungsschlüssel zu entschlüsseln.

6. Der Server verwendet den Sitzungsschlüssel, um die Kommunikation mit dem Client zu verschlüsseln.

12. Nachteile von HTTPS

  • Das HTTPS-Protokoll verfügt über mehrere Handshakes, was die Ladezeit der Seite um fast ein Vielfaches erhöht 50 % ;

  • HTTPS-Verbindungs-Caching ist nicht so effizient wie HTTP, was den Datenaufwand und den Stromverbrauch erhöht;

  • Beantragung eines SSL Zertifikat erfordert Geld, desto leistungsfähiger ist die Funktion. Das Zertifikat kostet mehr.

  • Der an SSL beteiligte Sicherheitsalgorithmus verbraucht CPU-Ressourcen und verbraucht viele Serverressourcen.

13. Fassen Sie den Unterschied zwischen HTTPS und HTTP zusammen:

  • HTTPS ist die Sicherheit von HTTP-Protokollversion: Die Datenübertragung des HTTP-Protokolls erfolgt im Klartext und ist unsicher. HTTPS verwendet das SSL/TLS-Protokoll zur Verschlüsselung.

  • http und https verwenden unterschiedliche Verbindungsmethoden, und die Standardports sind ebenfalls unterschiedlich. http ist 80 und https ist 443.

Empfohlenes Tutorial: Webserver-Sicherheit

Das obige ist der detaillierte Inhalt vonLernen Sie schnell etwas über die HTTP- und HTTPS-Protokolle!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zhihu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen