Heim Java javaLernprogramm Leitfaden zu HTTP-Codes in Java: Wie kann man verstehen, was der Server von Ihnen will?

Leitfaden zu HTTP-Codes in Java: Wie kann man verstehen, was der Server von Ihnen will?

Nov 10, 2024 am 08:54 AM

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.

Путеводитель по HTTP-кодам в Java: Как понять, что сервер от тебя хочет?

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**.

Путеводитель по HTTP-кодам в Java: Как понять, что сервер от тебя хочет?

  • 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.“

Путеводитель по HTTP-кодам в Java: Как понять, что сервер от тебя хочет?

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? Apr 19, 2025 pm 11:27 PM

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Apr 19, 2025 pm 09:51 PM

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...

See all articles