Statuscode 300 Multiple Choices: Was bedeutet der Code?

INEZA Felin-Michel

INEZA Felin-Michel

19 September 2025

Statuscode 300 Multiple Choices: Was bedeutet der Code?

Sie klicken auf einen Link, und anstatt auf eine neue Seite weitergeleitet zu werden, sehen Sie etwas Ungewöhnliches: eine Seite vom Server, die Ihnen verschiedene Optionen anzeigt, wohin Sie als Nächstes gehen könnten. Es könnte eine Liste verschiedener Dateiformate für ein Dokument oder verschiedene Sprachversionen einer Website sein. Ihnen, dem Benutzer, wird eine Wahl gelassen.

Dieses ungewöhnliche Verhalten ist der beabsichtigte Zweck eines der mehrdeutigsten und am wenigsten verstandenen HTTP-Statuscodes: 300 Multiple Choices.

Aber sind Sie schon einmal auf 300 Multiple Choices gestoßen?

Auf den ersten Blick klingt es vage, als ob der Server sich nicht entscheiden könnte. Und in gewisser Weise stimmt das auch! Der **300 Multiple Choices Statuscode** wird verwendet, wenn **mehr als eine mögliche Ressource** für die Anfrage eines Clients verfügbar ist. Anstatt einfach eine auszuwählen, teilt der Server dem Client mit:

"Hey, es gibt mehrere gültige Antworten. Sie müssen auswählen, welche Sie möchten."

Im Gegensatz zu seinen eindeutigen Umleitungs-Verwandten 301 Moved Permanently und 302 Found, die dem Browser *genau* sagen, wohin er gehen soll, ist der 300-Code eher ein Vorschlag. Es ist die Art des Servers zu sagen: "Ich habe mehrere verschiedene Darstellungen dessen, wonach Sie gefragt haben. Ich bin mir nicht sicher, welche Sie möchten, also lasse ich Sie oder Ihren Browser wählen."

Es ist das digitale Äquivalent dazu, nach dem Weg zu fragen und eine Karte mit mehreren hervorgehobenen potenziellen Routen in die Hand gedrückt zu bekommen, anstatt auf einen einzigen Pfad hingewiesen zu werden.

Wenn Sie Entwickler oder ein neugieriger Webnutzer sind, ist das Verständnis dieses Codes ein faszinierender Einblick in einen weniger beschrittenen Weg, wie das Web *hätte* funktionieren können.

In diesem umfassenden Blogbeitrag erklären wir, was der Statuscode 300 Multiple Choices bedeutet, warum und wann er verwendet wird, wie er die Client-Server-Kommunikation beeinflusst und wie Sie ihn als Entwickler effektiv handhaben können. Wenn Sie **ungewöhnliche Statuscodes wie 300 Multiple Choices simulieren und testen** möchten, müssen Sie keinen benutzerdefinierten Server von Grund auf neu einrichten. Sie können **Apidog** verwenden, eine All-in-One-Plattform für API-Design, Mocking, Tests, Debugging und Dokumentation. Mit Apidog können Sie eine 300 Multiple Choices-Antwort simulieren und sehen, wie Ihre App reagiert, was Ihnen eine bessere Kontrolle über Ihr API-Verhalten ermöglicht. Und das Beste daran? Sie können es kostenlos herunterladen.

Button

Lassen Sie uns nun alles erkunden, was Sie über den **HTTP-Statuscode 300 Multiple Choices** wissen müssen.

Was ist der HTTP-Statuscode 300 Multiple Choices?

Der Statuscode 300 Multiple Choices ist Teil der **3xx-Umleitungsklasse** der HTTP-Antwortcodes. Wenn ein Server eine 300-Antwort zurückgibt, bedeutet dies, dass die Anfrage mehr als eine mögliche Antwort hat. Mit anderen Worten, die angeforderte Ressource entspricht mehreren verfügbaren Optionen. Der Server sendet eine Liste dieser Optionen an den Client, damit dieser auswählen kann, auf welche Ressource er zugreifen möchte.

Anstatt eine einzelne Version zurückzusenden, stellt der Server eine Liste von Optionen bereit, damit der Client entscheiden kann, welche er abrufen möchte.

Zum Beispiel:

Kurz gesagt, 300 bedeutet:

"Ich habe gefunden, was Sie möchten, aber Sie haben mehrere gültige Auswahlmöglichkeiten. Welche möchten Sie?"

Stellen Sie es sich wie eine Bestellung im Restaurant vor: Wenn der Kellner mehrere gleichermaßen gültige Gerichte erklärt, dürfen Sie wählen, welches Sie möchten. Ähnlich präsentiert die 300-Antwort dem Client Optionen.

Die Ursprünge des 300-Statuscodes

Die **300 Multiple Choices**-Antwort wurde in der **HTTP/1.1-Spezifikation (RFC 7231)** eingeführt. Die Begründung war einfach:

Es wurde entwickelt, um Flexibilität und Client-Kontrolle zu bieten.

Warum existiert 300 Multiple Choices?

Sie fragen sich vielleicht, warum man nicht einfach zu einer bestimmten Ressource umleitet und eine 301- oder 302-Umleitung verwendet? Der Grund, warum 300 Multiple Choices existiert, ist die Bereitstellung von Transparenz und Auswahlmöglichkeiten.

Einige Szenarien erfordern es, Clients mehr als eine Option für eine Ressource zu geben, anstatt anzunehmen, was sie wollen. Es ist eine Möglichkeit für Server zu sagen: "Hey, hier sind mehrere passende Übereinstimmungen für diese Anfrage. Sie entscheiden, welche am besten passt."

Dieser Ansatz kann die Benutzererfahrung verbessern, mehrsprachige oder mehrformatige Inhalte unterstützen und APIs flexibler gestalten.

Wie es funktionieren sollte: Ein theoretisches Beispiel

Wenn ein Server einen 300-Statuscode zurückgibt, enthält er normalerweise einen Antwortkörper oder Header, die die verschiedenen verfügbaren Optionen angeben. Der Client verwendet diese Informationen dann, um zu entscheiden, welche Ressource als Nächstes angefordert werden soll.

Stellen wir uns ein Szenario für eine Universitätswebsite vor.

1. Die Anfrage: Ein Benutzer von irgendwo auf der Welt fordert die Startseite an.

GET / HTTP/1.1Host: www.university.example

2.  Das Dilemma des Servers: Der Server hat die Startseite auf Englisch, Spanisch und Französisch verfügbar. Er weiß nicht, welche Sprache der Benutzer bevorzugt. Anstatt zu raten (z.B. durch Verwendung des Accept-Language-Headers), entscheidet er sich, den Benutzer wählen zu lassen.

3.  Die 300-Antwort:

HTTP/1.1 300 Multiple ChoicesContent-Type: text/html; charset=utf-8

<html>
<head><title>Sprache wählen</title></head>
<body>
  <h1>Bitte wählen Sie Ihre bevorzugte Sprache:</h1>
  <ul>
    <li><a href="/en">Englisch</a></li>
    <li><a href="/es">Español</a></li>
    <li><a href="/fr">Français</a></li>
  </ul>
</body>
</html>

Der Server könnte auch fortgeschrittenere maschinenlesbare Hinweise in den Headern enthalten, wie einen Link-Header, obwohl dies selten implementiert wird.

4.  Die Aktion des Benutzers: Der Benutzer sieht diese Seite in seinem Browser und klickt auf "English".

5.  Die Umleitung: Der Browser stellt dann eine neue Anfrage an /en, und der Server antwortet mit der englischen Startseite und einem 200 OK-Status.

Dies kann automatisch in Browsern oder programmatisch in APIs geschehen.

Der entscheidende Fehler: Warum 300 Multiple Choices selten verwendet wird

Das klingt logisch, warum also stößt man auf diesen Code im modernen Web fast nie? Die Probleme sind zahlreich und grundlegend.

1. Es unterbricht die Automatisierung: Das Web basiert auf Automatisierung – Browsern, Skripten, APIs, Suchmaschinen-Crawlern. Diese Agenten erwarten klare Anweisungen. Eine 300-Antwort zwingt einen Menschen zu einer Wahl und stoppt jeden automatisierten Prozess. Ein Crawler wüsste nicht, welchem Link er folgen soll.

2. Schlechte Benutzererfahrung (UX): Es ist eine umständliche, unterbrechende Erfahrung für den Benutzer. Die moderne Best Practice ist entweder:

3.  Es ist nicht effizient: Es erfordert einen zusätzlichen Roundtrip (Anfrage -> 300 -> Benutzerwahl -> neue Anfrage) anstelle einer einfachen, automatischen Weiterleitung.

4.  Mehrdeutigkeit: Die HTTP-Spezifikation definiert nicht streng, wie die Auswahlmöglichkeiten präsentiert werden sollen. Sollte es eine HTML-Seite sein? Ein bestimmtes XML-Format? Dieser Mangel an einem Standard macht es für Maschinen unzuverlässig zu parsen.

Häufige Szenarien für 300 Multiple Choices

Lassen Sie uns einige Anwendungsfälle untersuchen, in denen 300 Multiple Choices nützlich sein kann:

Wie sieht eine 300-Antwort aus?

Das genaue Format einer 300-Antwort kann je nach Server und Anwendungsfall variieren, aber typischerweise enthält sie eine Liste oder Links.

Hier ist ein einfaches Beispiel einer Antwort mit Links im Nachrichtenrumpf:

textHTTP/1.1 300 Multiple Choices Content-Type: text/html
<html> 
<body> 
<h1>Mehrere Auswahlmöglichkeiten</h1> <ul> 
<li><a href="/resource1.html">Ressource 1</a></li> 
<li><a href="/resource2.html">Ressource 2</a></li> 
<li><a href="/resource3.html">Ressource 3</a></li> </ul> 
</body> 
</html>

Dies ermöglicht dem Client oder Benutzer, die gewünschte Ressource anzuklicken oder auszuwählen.

Umgang mit 300 Multiple Choices auf Client-Seite

Wenn Ihr Client eine 300-Antwort erhält, sollte er Folgendes tun:

Viele Browser fordern Benutzer möglicherweise auf, manuell auszuwählen, aber APIs müssen diese Logik typischerweise automatisieren.

300 Multiple Choices vs. andere 3xx-Statuscodes

Um 300 besser zu verstehen, vergleichen wir es mit anderen gängigen 3xx-Codes:

Statuscode Beschreibung Wann zu verwenden
300 Multiple Choices Mehrere Optionen für die angeforderte Ressource Wenn Clients aus mehreren Darstellungen wählen sollen
301 Moved Permanently Ressource wurde dauerhaft verschoben Verwenden, wenn eine Ressource an einen einzigen neuen Ort verschoben wurde
302 Found Temporäre Umleitung Client vorübergehend zu einer anderen Ressource leiten
303 See Other Umleitung mittels GET zu einer anderen Ressource Nach POST, Client zu einer Abruf-URL umleiten
304 Not Modified Ressource im Cache, unverändert Für Cache-Optimierungen verwenden

Im Gegensatz zu 301 oder 302, die Clients automatisch weiterleiten, erfordert 300 eine Client-Eingabe.

300 vs. andere Umleitungscodes

Code Bedeutung Typischer Anwendungsfall
300 Mehrere Auswahlmöglichkeiten Mehrere Sprachen, Formate oder Qualitäten
301 Dauerhaft verschoben Permanente neue URL
302 Gefunden Temporäre Umleitung
303 Siehe Andere Umleitung nach POST zu einer anderen Ressource
304 Nicht modifiziert Zwischengespeicherte Version noch gültig

Herausforderungen bei der Verwendung von 300 Multiple Choices

Obwohl 300 Multiple Choices nützlich sein kann, birgt es einige Herausforderungen:

Warum Entwickler 300 Multiple Choices trotzdem kennen sollten

Auch wenn 300 Multiple Choices nicht alltäglich ist, ist das Verständnis aus mehreren Gründen wichtig:

Implementierung von 300 Multiple Choices: Best Practices

Wenn Sie sich entscheiden, 300 Multiple Choices für Ihren Server oder Ihre API zu verwenden, hier sind einige Tipps:

Praktische Beispiele für 300 Multiple Choices

Beispiel 1: Sprachvarianten

Eine mehrsprachige Website bietet englische, spanische und französische Seiten für denselben Ressourcenpfad an und gibt 300 zurück, damit der Benutzer auswählen kann.

GET /docs HTTP/1.1

Antwort:

HTTP/1.1 300 Multiple Choices
Content-Type: application/json

{
  "available_variants": [
    { "language": "en", "url": "/docs/en" },
    { "language": "es", "url": "/docs/es" },
    { "language": "zh", "url": "/docs/zh" }
  ]
}

Beispiel 2: Inhaltsformat

Ein Dateifreigabedienst kann Download-Links für originale, komprimierte oder alternative Dateitypen präsentieren.

GET /data HTTP/1.1

Antwort:

HTTP/1.1 300 Multiple Choices
Content-Type: application/json
{
  "available_formats": [
    { "type": "application/json", "url": "/data.json" },
    { "type": "application/xml", "url": "/data.xml" },
    { "type": "text/html", "url": "/data.html" }
  ]
}

Beispiel 3: Medienqualität

Ein API-Endpunkt, der Bilder bereitstellt, könnte 300 mit Optionen für verschiedene Auflösungen oder Formate zurückgeben.

GET /video HTTP/1.1

Antwort:

HTTP/1.1 300 Multiple Choices
Content-Type: application/json

{
  "resolutions": [
    { "quality": "480p", "url": "/video-480.mp4" },
    { "quality": "720p", "url": "/video-720.mp4" },
    { "quality": "1080p", "url": "/video-1080.mp4" }
  ]
}

Vorteile der Verwendung von 300 Multiple Choices

Die Verwendung von 300 Multiple Choices mag selten klingen, hat aber einige echte Vorteile:

Häufige Fallstricke und Missverständnisse

Testen von 300-Antworten mit Apidog

Auch wenn Sie wahrscheinlich nie eine API erstellen werden, die 300 zurückgibt, ist das Verständnis, wie alle möglichen Statuscodes getestet werden, ein Zeichen eines gründlichen Entwicklers. Apidog ist das perfekte Werkzeug, um diese HTTP-Nuancen zu erkunden.

Mit Apidog können Sie:

  1. Eine 300-Antwort simulieren: Erstellen Sie einen Mock-Endpunkt in Apidog, der einen 300-Status mit einem benutzerdefinierten HTML-Body zurückgibt, der Auswahlmöglichkeiten auflistet. Dies ist hervorragend geeignet, um zu testen, wie Ihre Anwendung mit diesem ungewöhnlichen Szenario umgehen würde.
  2. Client-Resilienz testen: Verwenden Sie Ihren Mock-Endpunkt, um sicherzustellen, dass Ihre Client-Anwendung (z.B. eine mobile App oder ein Skript) nicht abstürzt, wenn sie eine unerwartete 300-Antwort erhält und eine Fallback-Strategie hat.
  3. Mit modernen Praktiken vergleichen: Verwenden Sie Apidog, um eine korrekte Inhaltsaushandlung zu testen. Erstellen Sie Anfragen mit verschiedenen Accept- und Accept-Language-Headern und überprüfen Sie, ob Ihr Server korrekt mit 302-Weiterleitungen zur entsprechenden Ressource antwortet.
  4. Verhalten dokumentieren: Falls Sie jemals eine 300-Antwort verwenden müssten, könnten Sie Apidog nutzen, um das erwartete Antwortformat und die Auswahlmöglichkeiten für andere Entwickler zu dokumentieren.
Button

Auf diese Weise müssen Sie kein Backend manuell konfigurieren, nur um Edge Cases zu simulieren. Laden Sie Apidog kostenlos herunter und übernehmen Sie die Kontrolle über Ihren API-Testprozess, selbst für kniffligere HTTP-Statuscodes wie 300.

Best Practices für Entwickler

Erweiterte Überlegungen für API-Designer

Die modernen, besseren Alternativen

Heute werden die Szenarien, in denen eine 300 hätte verwendet werden können, auf viel bessere Weise gehandhabt:

1. Für Content Negotiation (Sprache, Format):

Dies ist das Killer-Feature, das 300 obsolet gemacht hat. Der Client kann seine Präferenzen im Voraus über Header angeben, und der Server kann automatisch zur besten Option umleiten.

Der Server kann dann automatisch eine 302 Found- oder 303 See Other-Weiterleitung zur am besten geeigneten Ressource (/en/index.html oder /data.json) senden, wodurch die Notwendigkeit einer manuellen Auswahl vollständig umgangen wird.

2. Für mehrere Darstellungen:

Wenn eine Ressource mehrere Formate (z.B. PDF, DOCX, TXT) hat, besteht der moderne Ansatz darin, Links zu allen auf einer einzigen 200 OK-Landingpage anzubieten und keine 300-Antwort zu verwenden.

Fazit: HTTP 300 Multiple Choices in Ihrer Entwicklung nutzen

HTTP 300 Multiple Choices ist ein faszinierender Teil des HTTP-Ökosystems, der oft im Alltag verborgen bleibt. Sein Zweck, mehrere gültige Optionen für eine Ressource anzubieten, verleiht sowohl Servern als auch Clients Flexibilität, insbesondere beim Umgang mit mehrformatigen, mehrversionigen Inhalten.

Für Entwickler heute ist die Lektion von 300, die Eleganz der Lösungen des modernen Webs zu schätzen. Die Verwendung von Headern für die Inhaltsaushandlung und eindeutigen 3xx-Weiterleitungen bietet eine schnellere, zuverlässigere und automatisiertere Erfahrung sowohl für Benutzer als auch für Maschinen.

Letztendlich entwickelte sich das Web in eine andere Richtung – eine der Automatisierung, expliziten Inhaltsaushandlung und nahtlosen Benutzererfahrung. Der 300-Code bleibt in der Spezifikation, ein Geist einer potenziellen Zukunft, die sich nie materialisierte.

Der **Statuscode 300 Multiple Choices** ist einer jener HTTP-Codes, der nicht jeden Tag auftaucht, aber wenn er es tut, ist er mächtig.

Er sagt Clients:

"Es gibt hier mehrere gültige Ressourcen. Sie entscheiden, welche die beste ist."

Dies ist besonders nützlich in **mehrsprachigen Apps, APIs, die mehrere Formate anbieten, oder Medien mit unterschiedlichen Qualitätsstufen**.

Obwohl seine Akzeptanz begrenzt ist, repräsentiert es die **in HTTP integrierte Flexibilität**. Das Verständnis von 300 verbessert Ihr Verständnis der Webkommunikation und bereitet Sie auf Edge Cases oder spezielle API-Anforderungen vor.

Und denken Sie daran: Um APIs, die 300 Multiple Choices oder andere Statuscodes zurückgeben können, effektiv zu testen und zu dokumentieren, ist der kostenlose Download von Apidog ein ausgezeichneter erster Schritt. Apidog vereinfacht die Interaktion mit komplexen HTTP-Code-Antworten und steigert Ihre Produktivität.

Button

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen