1. Was bedeuten die HTTP-Antwortcodes 301 und 302? Was ist der Unterschied?
Antwort: 301 und 302 sind beide HTTP-Statuscodes und beide bedeuten, dass eine bestimmte URL übertragen wurde.
Unterschied:
301-Weiterleitung: 301 steht für „Permanent verschoben“.
302-Weiterleitung: 302 steht für „Vorübergehend verschoben“.
(Empfohlenes Tutorial: Java-Eingabeprogramm)
2. Was ist der Unterschied zwischen Weiterleiten und Umleiten?
Weiterleiten und Umleiten stellen zwei Methoden zur Anforderungsweiterleitung dar: direkte Weiterleitung und indirekte Weiterleitung.
Direkte Weiterleitungsmethode (Forward), der Client und der Browser geben nur eine Anforderung aus, Servlet, HTML, JSP oder andere Informationsressourcen, die zweite Informationsressource antwortet auf die Anforderung und speichert sie im Anforderungsobjekt Das Objekt wird mit jeder Informationsressource geteilt.
Die indirekte Weiterleitungsmethode (Redirect) besteht eigentlich aus zwei HTTP-Anfragen. Wenn der Server auf die erste Anfrage antwortet, kann der Browser eine Anfrage an eine andere URL senden, um den Zweck der Weiterleitung zu erreichen.
Um ein beliebtes Beispiel zu nennen:
Direkte Weiterleitung ist äquivalent zu: „A bittet B, sich Geld zu leihen, B sagt, dass er es nicht hat, B geht zu C, um es zu leihen, und Wenn er es nicht ausleihen kann, gibt er die Nachricht weiter: „Geben Sie es A.“
Indirekte Weiterleitung ist äquivalent zu: „A hat B gebeten, sich Geld zu leihen, aber B sagte, er hätte es nicht.“ Also bat er A, sich Geld von C zu leihen.
(Empfohlene verwandte Video-Tutorials: Java-Video-Tutorial)
3. Beschreiben Sie kurz den Unterschied zwischen TCP und UDP.
TCP ist verbindungsorientiert (wenn Sie einen Anruf tätigen möchten, müssen Sie zuerst wählen, um eine Verbindung herzustellen); UDP ist verbindungslos, d. h. es ist nicht erforderlich, vorher eine Verbindung herzustellen Senden von Daten.
TCP bietet zuverlässige Dienste. Das heißt, die über die TCP-Verbindung übertragenen Daten sind fehlerfrei, gehen nicht verloren, werden nicht wiederholt und kommen in der richtigen Reihenfolge an. UDP bemüht sich nach besten Kräften um die Zustellung, d. h. eine zuverlässige Zustellung kann nicht garantiert werden.
Tcp erreicht eine zuverlässige Übertragung durch Prüfsumme, Neuübertragungskontrolle, Sequenznummernidentifizierung, Schiebefenster und Bestätigungsantwort. Beispielsweise kann die Neuübertragungskontrolle bei Paketverlust auch zur Steuerung der Reihenfolge von Paketen verwendet werden, die nicht in der richtigen Reihenfolge sind.
UDP bietet eine bessere Echtzeitleistung und eine höhere Arbeitseffizienz als TCP. Es eignet sich für Kommunikation oder Broadcast-Kommunikation, die eine Hochgeschwindigkeitsübertragung und Echtzeitleistung erfordert.
Jede TCP-Verbindung kann nur Punkt-zu-Punkt sein; UDP unterstützt die interaktive Eins-zu-eins-, Eins-zu-viele-, Viele-zu-eins- und Viele-zu-viele-Kommunikation.
TCP benötigt mehr Systemressourcen, während UDP weniger Systemressourcen benötigt.
4. Warum muss TCP dreimal die Hand schütteln, aber nicht zweimal? Warum?
Um eine zuverlässige Datenübertragung zu erreichen, müssen beide Parteien, die mit dem TCP-Protokoll kommunizieren, eine Sequenznummer pflegen, um zu identifizieren, welche der gesendeten Datenpakete von der anderen Partei empfangen wurden. Der Drei-Wege-Handshake-Prozess ist ein notwendiger Schritt für beide kommunizierenden Parteien, um sich gegenseitig über den Startwert der Sequenznummer zu informieren und zu bestätigen, dass die andere Partei den Startwert der Sequenznummer erhalten hat.
Wenn es nur zwei Handshakes gibt, kann höchstens nur die Startsequenznummer des Verbindungsinitiators bestätigt werden, und die von der anderen Partei ausgewählte Sequenznummer kann nicht bestätigt werden.
5. Sagen Sie mir, wie TCP-Sticky-Pakete generiert werden?
(1) Der Absender generiert Sticky-Pakete
Clients und Server, die das TCP-Protokoll zum Übertragen von Daten verwenden, behalten oft einen langen Verbindungsstatus bei (Daten werden einmal pro Verbindung gesendet und es gibt keine Sticky-Pakete), beide Parteien können weiterhin Daten übertragen, solange die Verbindung nicht getrennt wird; wenn die gesendeten Datenpakete jedoch zu klein sind, ermöglicht das TCP-Protokoll dem Nagle-Algorithmus standardmäßig, diese kleineren Datenpakete zusammenzuführen und zu senden ( Puffer Das Senden von Daten ist ein Stapelprozess. Dieser Zusammenführungsprozess wird im Sendepuffer ausgeführt, was bedeutet, dass sich die Daten beim Senden bereits in einem Sticky-Zustand befinden.
(2) Der Empfänger generiert Sticky-Pakete
Der Vorgang, wenn der Empfänger das TCP-Protokoll zum Empfangen von Daten verwendet, ist wie folgt: Die Daten gehen an den Empfänger, vom Netzwerk Der untere Teil des Modells wird an die Transportschicht übergeben. Die TCP-Protokollverarbeitung der Transportschicht besteht darin, es im Empfangspuffer abzulegen, und dann ruft die Anwendungsschicht es aktiv ab (C-Sprache verwendet recv, read). und andere Funktionen); zu diesem Zeitpunkt tritt ein Problem auf, das heißt, wir sind Die im Programm aufgerufene Funktion zum Lesen von Daten kann die Daten im Puffer nicht rechtzeitig herausnehmen, und die nächsten Daten kommen und ein Teil davon wird abgelegt das Ende des Puffers. Wenn wir die Daten lesen, handelt es sich um ein Sticky-Paket. (Geschwindigkeit beim Einfügen von Daten > Geschwindigkeit beim Abrufen von Daten auf der Anwendungsebene)
Wenn Sie mehr wissen möchten Fragen zu Vorstellungsgesprächen finden Sie unter Java-Interviewfragen.
Das obige ist der detaillierte Inhalt vonFragen zum neuen Java-Interview 2020 – Netzwerk. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!