In der Welt der HTTP-Codes ist jede Serverantwort wie eine Nachricht vom anderen Ende des Universums. Sie haben eine Anfrage gesendet und nun erscheint dieser mysteriöse Code auf dem Bildschirm. Was bedeutet es? Wie sollen wir es verstehen? Lassen Sie uns herausfinden, wie wir Signale vom Server abfangen und nicht in eine Falle tappen.
Warum antworten sie uns überhaupt mit Codes?
Der Server ist wie ein guter alter Professor. Er wird nicht jedes Mal lange Briefe schreiben. Es verwendet HTTP-Codes oder dreistellige Signale in seinen Antworten, um Ihnen (und anderen Entwicklern) zu helfen, zu verstehen, was vor sich geht. Sie sind in fünf Kategorien unterteilt, wie angesehene Altersgruppen, von den klugen Informanten (1xx) bis zu den kapriziösen Irrtümern (4xx und 5xx).
Hier sind unsere Hauptcharaktere:
-
1xx: Der Kellner nippt nachdenklich am Kaffee und sagt: „Ja, ja, ich arbeite, warte...“
-
2xx: Alles ist cool, die Anfrage ist abgeschlossen, der Server ist zufrieden.
-
3xx: „Oh, hör zu, du bist in die falsche Richtung gegangen. Lass mich dich umleiten!“
-
4xx: Der Kellner ist empört: „Sie haben mich missverstanden, was wollen Sie?“
-
5xx: Oh, es scheint, dass der Server etwas Wichtiges verloren hat und verwirrt war.
Wie können Sie feststellen, ob der Server zufrieden ist? Codes 2xx
Der Kellner ist, wie jeder Introvertierte, einfach froh, wenn man alles richtig gemacht hat. Hier sind seine Zustimmungssignale:
-
200 OK – „Alles lief wie am Schnürchen!“ Die Anfrage wurde bearbeitet, Sie können sich freuen.
-
201 erstellt – „Etwas Neues wurde erstellt, fangen Sie es an!“ Als Bonus könnte dies ein neuer Eintrag in der Datenbank sein.
-
204 Kein Inhalt – „Alles ist fertig, aber ich habe nichts zu zeigen.“ Sie haben beispielsweise etwas gelöscht und es ist dort nichts mehr zu sehen.
Beispiel in Java: Wie bekomme ich dieses magische „OK“?
HttpURLConnection connection = (HttpURLConnection) new URL("https://easy.java.com/data").openConnection();
connection.setRequestMethod("GET");
if (connection.getResponseCode() == 200) {
System.out.println("Сервер сказал ОК! Тянем данные...");
}
Nach dem Login kopieren
Nach dem Login kopieren
Was ist, wenn der Server nicht zufrieden ist? Codes 4xx
Hier kann es bereits zu Problemen kommen, etwa wenn Sie versehentlich **die falsche Tür geöffnet haben**.
-
400 Bad Request – „Sie haben bei Ihrer Anfrage eindeutig etwas falsch gemacht.“
-
401 Unauthorized – „Wer bist du? Ich kenne dich nicht.“ Sieht so aus, als ob Sie ein Passwort benötigen!
-
402 Zahlung erforderlich. Dieser Code war für den kostenpflichtigen Zugriff auf bestimmte Ressourcen reserviert, wird aber fast nie verwendet. Würde es verwendet, würde es so klingen: „Erst die Rechnung bezahlen, dann Zugang erhalten!“ Vielleicht würde der Kellner mit einer Kasse am Eingang stehen.
-
403 Verboten – „Hey, selbst mit dem Passwort kommst du hier nicht rein.“ Anscheinend ist der Zugriff falsch.
-
404 Nicht gefunden – „Es war irgendwo... aber es ist irgendwo verschwunden.“ Dieser Code ist einfach klassisch.
-
409-Konflikt – „Sie und jemand anderes wollen dasselbe. Wer wird gewinnen?“
- Beispiel: Fehlerbehandlung, wenn der Server murrt
int responseCode = connection.getResponseCode();
if (responseCode == 404) {
System.out.println("Сервер говорит, что ничего не нашел.");
} else if (responseCode == 401) {
System.out.println("Ой, кажется, сюда нужен пароль.");
}
Nach dem Login kopieren
Nach dem Login kopieren
Wenn auf dem Server ein Rockkonzert stattfand: Codes 5xx
Und dann hält der Server es nicht aus. Er wollte arbeiten, aber irgendwo ging offensichtlich etwas schief.
-
500 Internal Server Error – Stellen wir uns vor, dass der Server ein Rockstar ist, der mitten im Konzert plötzlich eine Note verliert und sich geschlagen geben muss: „Da ist etwas schiefgelaufen!“ Dies ist die Standardreaktion des Servers, wenn er selbst nicht versteht, was passiert ist. Im Code sieht es oft so aus wie „Allgemeiner Fehler, etwas hat nicht funktioniert“, und in den Protokollen sieht man so etwas wie „Unbekannter Fehler ist aufgetreten“.
-
501 nicht implementiert – Dieser Code bedeutet, dass der Server keine Ahnung hat, wie er mit der aktuellen Anfrage umgehen soll. Man kann ihn sich als einen IT-Spezialisten vorstellen, der den Wasserhahn in der Küche reparieren soll. Er steht mit dem Schlüssel da, schaut auf den Wasserhahn und sagt: „Das ist nicht meine Spezialität!“ Am häufigsten tritt dies auf, wenn der Client eine Anfrage stellt, die der Server nicht unterstützt.
-
502 Bad Gateway Hier versucht ein Zwischenserver (Gateway oder Proxy), einen anderen Server zu kontaktieren, dieser hat jedoch mit etwas Unverständlichem oder überhaupt nicht geantwortet
-
503 Service nicht verfügbar – „Oh, ich kann gerade nicht, geben Sie mir fünf Minuten.“ Entweder ist der Dienst ausgefallen oder der Server ist voll. Wenn der Server Tage frei nehmen könnte, wäre dies sein Lieblingscode.
-
504 Gateway Timeout Dieser Code bedeutet, dass der Server nicht auf eine Antwort von einem anderen Server gewartet hat, der auf die Anfrage hätte antworten sollen. Stellen Sie sich einen Server vor, der auf eine Antwort wartet, die nie kam. Als Ergebnis sagt der Server zum Client: „Nun, ich habe gewartet und gewartet, aber nichts bekommen.“
Verwenden von RestTemplate: So kommunizieren Sie mit einem Server in Spring
Wenn Sie mit Spring arbeiten, verfügen Sie über ein RestTemplate und einen WebClient für Anfragen. Sie ermöglichen es Ihnen, Serverantworten wie ein echter Fischer abzufangen.
RestTemplate: Serverantwort abfangen
HttpURLConnection connection = (HttpURLConnection) new URL("https://easy.java.com/data").openConnection();
connection.setRequestMethod("GET");
if (connection.getResponseCode() == 200) {
System.out.println("Сервер сказал ОК! Тянем данные...");
}
Nach dem Login kopieren
Nach dem Login kopieren
WebClient für Asynchronitätsliebhaber
WebClient ist ein Tool für diejenigen, die keine Angst davor haben, im „Warten, aber nicht sofort“-Stil zu arbeiten. Es ist, als ob Sie sagen würden: „Server, tun Sie, was Sie können, und ich werde bis jetzt warten.“
int responseCode = connection.getResponseCode();
if (responseCode == 404) {
System.out.println("Сервер говорит, что ничего не нашел.");
} else if (responseCode == 401) {
System.out.println("Ой, кажется, сюда нужен пароль.");
}
Nach dem Login kopieren
Nach dem Login kopieren
Rat
Überprüfen Sie die Zeitüberschreitungen – manchmal friert der Server ein und Sie sollten pünktlich zum Mittagessen sein. Stellen Sie die Wartezeit ein.
Vergessen Sie nicht die Protokollierung – jeder Code ist wichtig! Protokollieren Sie die Antworten und Sie werden immer nachvollziehen können, was schief gelaufen ist.
Arbeiten Sie mit 4xx und 5xx – lernen Sie aus Fehlern. Je besser Sie mit solchen Antworten umgehen, desto robuster wird Ihre Anwendung sein.
Abschluss
Der Server ist ein launisches Wesen und jedes Mal, wenn Sie einen Code von ihm erhalten, ist es, als würden Sie ein Rätsel lösen. Aber wenn Sie die Grundcodes und ihre Bedeutung kennen, können Sie schnell verstehen, was von Ihnen verlangt wird!
Denken Sie daran: HTTP-Codes sind die Kommunikationssprache zwischen Ihrem Java-Code und dem Server. Wenn Sie wissen, wie man es liest, wird der Kellner immer zufrieden sein.
Das obige ist der detaillierte Inhalt vonLeitfaden zu HTTP-Codes in Java: Wie kann man verstehen, was der Server von Ihnen will?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!