206
Partial Content
Specyfikacja kodu statusu HTTP 206
Kod statusu 206 Partial Content wskazuje, że serwer pomyślnie realizuje żądanie zakresu dla zasobu docelowego, przenosząc jedną lub więcej części wybranej reprezentacji, które odpowiadają zadowalającym zakresom znalezionym w polu nagłówka Range żądania (sekcja 3.1).
Jeśli przenoszona jest pojedyncza część, serwer generujący odpowiedź 206 Partial Content MUSI wygenerować pole nagłówka Content-Range, opisujące, jaki zakres wybranej reprezentacji jest dołączony, oraz payload składający się z zakresu. Na przykład:
HTTP/1.1 206 Partial Content Partial Content
Data: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif
... 26012 bajtów częściowych danych obrazu ....
Jeśli przesyłanych jest wiele części, serwer generujący odpowiedź 206 Partial Content MUSI wygenerować ładunek "multipart/byteranges", jak zdefiniowano w dodatku A, oraz pole nagłówka Content-Type zawierające typ nośnika multipart/byteranges i jego wymagany parametr brzegowy. Aby uniknąć zamieszania z odpowiedziami jednoczęściowymi, serwer NIE MOŻE generować pola nagłówka Content-Range w sekcji nagłówka HTTP odpowiedzi wieloczęściowej (zamiast tego pole to zostanie wysłane w każdej części).
W obrębie obszaru nagłówka każdej części ciała w wieloczęściowym ładunku, serwer MUSI wygenerować pole nagłówka Content-Range odpowiadające zakresowi dołączonemu do tej części ciała. Jeśli wybrana reprezentacja miałaby pole nagłówka Content-Type w odpowiedzi 200 (OK), serwer POWINIEN wygenerować to samo pole Content-Type w obszarze nagłówka każdej części ciała.
Na przykład:
HTTP/1.1 206 Partial Content Partial Content
Data: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Length: 1741
Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
--THIS_STRING_SEPARATES
Content-Type: application/pdf
Content-Range: bytes 500-999/8000
...pierwszy zakres....
--THIS_STRING_SEPARATES
Content-Type: application/pdf
Content-Range: bytes 7000-7999/8000
....drugi zakres
--THIS_STRING_SEPARATES--
Gdy żąda się wielu zakresów, serwer MOŻE połączyć dowolne z zakresów, które się pokrywają, lub które są oddzielone przerwą mniejszą niż narzut wysyłania wielu części, niezależnie od kolejności, w jakiej odpowiadające im byte-range-spec pojawiły się w otrzymanym polu nagłówka Range. Ponieważ typowy narzut między częściami payloadu multipart/byteranges wynosi około 80 bajtów, w zależności od typu mediów wybranej reprezentacji i wybranej długości parametru granicznego, może być mniej wydajne przesyłanie wielu małych, rozłącznych części niż przesyłanie całej wybranej reprezentacji.
Serwer NIE MOŻE generować odpowiedzi wieloczęściowej na żądanie pojedynczego zakresu, ponieważ klient, który nie żąda wielu części, może nie obsługiwać odpowiedzi wieloczęściowych. Jednakże, serwer MOŻE wygenerować ładunek wieloczęściowy z tylko pojedynczą częścią ciała, jeśli zażądano wielu zakresów i tylko jeden zakres okazał się satysfakcjonujący lub tylko jeden zakres pozostał po koalescencji. Klient, który nie może przetworzyć odpowiedzi multipart/byteranges NIE MOŻE generować żądania, które prosi o wiele zakresów.
Gdy generowany jest wieloczęściowy payload odpowiedzi, serwer POWINIEN wysyłać części w tej samej kolejności, w jakiej odpowiadający im byte-range-spec pojawił się w odebranym polu nagłówka Range, wyłączając te zakresy, które uznano za niespełnialne lub które zostały połączone w inne zakresy. Klient, który otrzymuje odpowiedź wieloczęściową MUSI sprawdzić pole nagłówka Content-Range obecne w każdej części ciała, aby określić, który zakres jest zawarty w tej części ciała; klient nie może polegać na otrzymaniu tych samych zakresów, o które prosił, ani tej samej kolejności, o którą prosił. Kiedy generowana jest odpowiedź 206 Partial Content, serwer MUSI wygenerować następujące pola nagłówka, oprócz tych wymaganych powyżej, jeśli pole
Źródło / Cytat z: Kod statusu 206 Partial Content HTTP jest określony przez sekcję 4.1 z RFC7233.
Protokół HTTP
Jak wyrzucić kod statusu 206 za pomocą PHP?
Aby wyrzucić na stronę internetową kod statusu HTTP 206, można użyć funkcji PHP http_response_code. Składnia jest następująca: http_response_code(206) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Testowanie kodu 206 statusu HTTP
Aby móc wyświetlić kod statusu HTTP (w tym przypadku 206 Partial Content) i inne informacje po stronie klienta, należy otworzyć konsolę programistyczną za pomocą F12. Następnie należy przejść do zakładki "Network". Teraz można otworzyć stronę, w zakładce "Network" powinna być widoczna strona (przykładowy index.php). Należy ją zaznaczyć, a następnie wybrać sekcję Herder. Użytkownik zobaczy wtedy następujący wynik:
URL: https://http-statuscode.com/errorCodeExample.php?code=206
Status: 206 Partial Content
Te: Network
Adres IP: XX.XX.XX.XX
Zgodność kodu statusu 206 z przeglądarką
Chrome | Yes |
Edge | Yes |
Firefox | Yes |
Opera | Yes |
Safari | Yes |
Chrome Android | Yes |
Firefox for Android | Yes |
Opera Android | Yes |
Safari on iOS | Yes |
Internet | Yes |
WebView Android | Yes |
Stałe w językach programowania
http.StatusPartialContent
Response::HTTP_PARTIAL_CONTENT
:partial_content
Linki zewnętrzne z dalszymi informacjami na temat kodu statusu HTTP 206:
Zabawne memy o kodzie statusu HTTP 206
Artykuły na blogu
SEO i kody statusu HTTP: Kompleksowa analiza
Optymalizacja strony internetowej pod kątem wyszukiwarek (SEO) jest złożonym przedsięwzięciem. Jednym z często pomijanych, ale kluczowych aspektów dobrego rankingu są kody statusu HTTP. Te małe, tr...