Heim  >  Artikel  >  Java  >  Java interviewt HTTP- und HTTPS-Protokolle

Java interviewt HTTP- und HTTPS-Protokolle

王林
王林nach vorne
2020-12-29 10:25:382518Durchsuche

Java interviewt HTTP- und HTTPS-Protokolle

Werfen wir zunächst einen Blick auf die Interviewfragen von Alibaba und SF Express.

Alibaba-Interviewfragen: Wie viel wissen Sie über das HTTP-Protokoll? Was ist der Unterschied zwischen HTTPS?

SF Express-Interviewfragen: http erklären

Video-Sharing lernen: Java-Video-Tutorial)

Detaillierte Antworten lauten wie folgt:

1. Einführung in HTTP

HTTP-Protokoll ist die Abkürzung für Hyper Text Transfer Protocol. Das HTTP-Protokoll funktioniert auf einer Client-Server-Architektur. Als HTTP-Client sendet der Browser alle Anfragen über die URL an den HTTP-Server, also den WEB-Server. Der Webserver sendet Antwortinformationen basierend auf der empfangenen Anfrage an den Client.
2. Eigenschaften des HTTP-Protokolls
Keine Verbindung: Die Bedeutung von „Keine Verbindung“ besteht darin, jede Verbindung auf die Verarbeitung nur einer Anfrage zu beschränken. Nachdem der Server die Anfrage des Clients verarbeitet und die Antwort des Clients empfangen hat, wird die Verbindung getrennt. Diese Methode spart Übertragungszeit.
Zustandslos: Das HTTP-Protokoll ist ein zustandsloses Protokoll. Zustandslos bedeutet, dass das Protokoll über keine Speicherkapazität für die Transaktionsverarbeitung verfügt. Das Fehlen eines Status bedeutet, dass, wenn für die nachfolgende Verarbeitung die vorherigen Informationen erforderlich sind, diese erneut übertragen werden müssen, was zu einer Erhöhung der pro Verbindung übertragenen Datenmenge führen kann. Andererseits reagiert der Server schneller, wenn er keine vorherigen Informationen benötigt. 3. HTTP-Statuscodes ausgeführt werden, um die Anfrage abzuschließen Weitere Vorgänge
4xx: Client-Fehler – die Anfrage weist einen Syntaxfehler auf oder die Anfrage kann nicht erfüllt werden 5xx: Serverfehler – der Server konnte eine legitime Anfrage nicht implementieren Allgemeine Statuscodes:

200 OK                     //客户端请求成功400 Bad Request            //客户端请求有语法错误,不能被服务器所理解401 Unauthorized           //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden              //服务器收到请求,但是拒绝提供服务404 Not Found              //请求资源不存在,eg:输入了错误的URL500 Internal Server Error  //服务器发生不可预期的错误503 Server Unavailable     //服务器当前不能处理客户端的请求,一段时间后可能恢复正常



4. So funktioniert HTTP


HTTP-Protokoll definiert, wie ein Web-Client eine Webseite von einem Webserver anfordert und wie der Server die Webseite an den Client überträgt. Das HTTP-Protokoll verwendet ein Anforderungs-/Antwortmodell. Der Client sendet eine Anforderungsnachricht an den Server. Die Anforderungsnachricht enthält die Anforderungsmethode, die URL, die Protokollversion, den Anforderungsheader und die Anforderungsdaten. Der Server antwortet mit einer Statuszeile, die die Protokollversion, den Erfolgs- oder Fehlercode, Serverinformationen, Antwortheader und Antwortdaten enthält.
Im Folgenden sind die Schritte für HTTP-Anfrage/-Antwort aufgeführt:
1. Der Client stellt eine Verbindung zum Webserver her
Ein HTTP-Client, normalerweise ein Browser, richtet einen TCP-Socket mit dem HTTP-Port des Webservers ein (Standard ist 80). ) Wortverbindung. Zum Beispiel http://www.baidu.con.
2. HTTP-Anfrage senden
Über den TCP-Socket sendet der Client eine Textanforderungsnachricht an den Webserver. Eine Anforderungsnachricht besteht aus vier Teilen: Anforderungszeile, Anforderungsheader, Leerzeile und Anforderungsdaten.
3. Der Server akzeptiert die Anfrage und gibt eine HTTP-Antwort zurück
Der Webserver analysiert die Anfrage und findet die angeforderte Ressource. Der Server schreibt eine Kopie der Ressource in den TCP-Socket, die vom Client gelesen wird. Eine Antwort besteht aus vier Teilen: Statuszeile, Antwortheader, Leerzeile und Antwortdaten.
4. Geben Sie die TCP-Verbindung frei
Wenn der Verbindungsmodus geschlossen ist, schließt der Server die TCP-Verbindung aktiv, und der Client schließt die Verbindung passiv und gibt die TCP-Verbindung frei Während dieser Zeit können Sie weiterhin Anfragen empfangen.
5 Der Client-Browser analysiert zunächst die Statuszeile, um zu sehen, ob die Anfrage vorliegt ist erfolgreich. Anschließend wird jeder Antwortheader analysiert und der Antwortheader teilt dem folgenden HTML-Dokument mehrere Bytes und den Zeichensatz des Dokuments mit. Der Client-Browser liest die HTML-Antwortdaten, formatiert sie entsprechend der HTML-Syntax und zeigt sie im Browserfenster an. Beispiel: Geben Sie die URL in die Adressleiste des Browsers ein und drücken Sie die Eingabetaste. Sie durchlaufen den folgenden Vorgang: 1. Der Browser fordert den DNS-Server auf, die IP-Adresse aufzulösen, die dem Domänennamen in der URL entspricht.
2. Stellen Sie nach dem Parsen der IP-Adresse eine TCP-Verbindung mit dem Server basierend auf der IP-Adresse und dem Standardport 80 her
3. Der Browser sendet eine HTTP-Anfrage zum Lesen der Datei (die Datei, die dem Teil nach dem Domänennamen in der URL entspricht). ). Diese Anforderungsnachricht dient als dritter Schritt des TCP-Drei-Wege-Handshakes. Die Daten der Nachricht werden an den Server gesendet. 4. Der Server antwortet auf die Browser-Anfrage und sendet den entsprechenden HTML-Text 5. Geben Sie die TCP-Verbindung frei.
6. Der Browser konvertiert den HTML-Text und zeigt den Inhalt an.


5. Was ist der Unterschied zwischen HTTP und HTTPS
HTTPS: Es handelt sich um einen auf Sicherheit ausgerichteten HTTP-Kanal. Einfach ausgedrückt handelt es sich um eine sichere Version von HTTP, d. Die Sicherheitsgrundlage von HTTPS ist SSL, daher ist eine Verschlüsselung erforderlich.
Die Hauptfunktionen des HTTPS-Protokolls können in zwei Arten unterteilt werden: Die eine besteht darin, einen Informationssicherheitskanal einzurichten, um die Sicherheit der Datenübertragung zu gewährleisten, die andere darin, die Authentizität der Website zu bestätigen.
Die Hauptunterschiede zwischen HTTPS und HTTP sind wie folgt:
1. Das https-Protokoll erfordert die Beantragung eines Zertifikats von einer Zertifizierungsstelle. Im Allgemeinen gibt es weniger kostenlose Zertifikate, daher ist eine bestimmte Gebühr erforderlich.
2. http ist ein Hypertext-Übertragungsprotokoll und Informationen werden im Klartext übertragen, während https ein sicheres SSL-verschlüsseltes Übertragungsprotokoll ist.
3. http und https verwenden völlig unterschiedliche Verbindungsmethoden und verwenden unterschiedliche Ports. Ersteres ist 80 und letzteres ist 443.
4. Die HTTP-Verbindung ist sehr einfach und zustandslos. Das HTTPS-Protokoll ist ein Netzwerkprotokoll, das auf dem SSL+HTTP-Protokoll basiert und eine verschlüsselte Übertragung und Identitätsauthentifizierung durchführen kann und sicherer als das HTTP-Protokoll ist.
6. Wie die Sicherheit von HTTPS erreicht wird

Java interviewt HTTP- und HTTPS-Protokolle
(1) Der Kunde greift über die https-URL auf den Webserver zu und benötigt den Aufbau einer SSL-Verbindung mit dem Webserver.
(2) Nach Erhalt der Client-Anfrage übermittelt der Webserver eine Kopie der Zertifikatsinformationen der Website (das Zertifikat enthält den öffentlichen Schlüssel) an den Client.
(3) Der Browser des Clients und der Webserver beginnen 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 Webserver verwendet seinen eigenen privaten Schlüssel, um den Sitzungsschlüssel zu entschlüsseln.
(6) Der Webserver verwendet den Sitzungsschlüssel, um die Kommunikation mit dem Client zu verschlüsseln.
Java interviewt HTTP- und HTTPS-Protokolle

Verwandte Empfehlungen: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonJava interviewt 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:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen