300 Multiple Choices oznacza, że zasób docelowy ma więcej niż jedną reprezentację, każdą pod własnym adresem URL, a serwer chce, by wyboru dokonał użytkownik lub jego przeglądarka. Typowe przykłady to ten sam dokument w różnych językach lub formatach plików. Treść odpowiedzi powinna zawierać listę możliwości z linkami.
Jeśli serwer ma preferowany wariant, powinien wysłać jego adres URL w nagłówku Location. RFC 9110 pozwala klientom automatycznie za nim podążyć, ale przeglądarki tego nie robią: standard Fetch obsługuje automatycznie tylko kody 301, 302, 303, 307 i 308. Użytkownik widzi zamiast tego treść odpowiedzi.
Odpowiedź 300 może być buforowana heurystycznie. Ponieważ automatyczna negocjacja jest zawodna, większość witryn sama wybiera wariant i albo serwuje go bezpośrednio, albo stosuje zwykłe przekierowanie.
Przykładowa odpowiedź
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102
<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul> SEO i sprawdzanie przekierowań
Kod 300 jest rzadki i słabo obsługiwany przez roboty indeksujące, więc nie polegaj na nim, kierując odwiedzających lub boty. Różne wersje językowe serwuj pod osobnymi adresami URL połączonymi adnotacjami hreflang. Jeśli przekierowujesz odwiedzających na podstawie języka lub urządzenia, użyj kodu 302 lub 307 i zachowaj wersję domyślną, do której roboty mają dostęp. Przeglądarki zatrzymują się na kodzie 300, więc podczas audytu przekierowań traktuj go jako koniec łańcucha.
Typowe przyczyny i zastosowania
- Moduł
mod_spelingserwera Apache znajduje kilka plików, które mogą pasować do adresu URL z literówką, i wyświetla ich listę. - Negocjacja treści wyświetla dostępne warianty językowe lub formaty, zamiast wybrać jeden z nich.
- API oferuje dokument w kilku formatach i pozwala klientowi wybrać.