206 Partial Content

Zwracana jest tylko część zasobu.

Kiedy go używać

Odpowiedź na żądanie Range, np. przy streamingu wideo lub wznawianym pobieraniu.

Warto wiedzieć

Serwery wysyłają 206 tylko wtedy, gdy klient poprosi o to nagłówkiem Range, np. Range: bytes=0-1023, a serwer obsługuje zakresy, co ogłasza przez Accept-Ranges: bytes. Odpowiedź zawiera Content-Range: bytes 0-1023/146515 z całkowitym rozmiarem. Safari i iOS wymagają obsługi zakresów dla wideo: jeśli serwer ignoruje Range i zwraca 200, odtwarzanie MP4 często w ogóle nie działa.

Żądania wykraczające poza koniec pliku dostają 416. Kilka zakresów w jednym żądaniu wraca jako multipart/byteranges. Zakresy dotyczą zakodowanych bajtów, więc serwery zwykle nie kompresują multimediów gzipem. Za CDN-em sprawdź, czy częściowe żądania są poprawnie cache'owane i serwowane, a nie za każdym razem przekazywane do serwera źródłowego. Testuj przez curl -r 0-99 -i, a wznawianie pobierania przez curl -C - -O.

Sukces (2xx)

Kody 2xx oznaczają sukces: serwer odebrał, zrozumiał i przyjął żądanie.

Jak to wygląda

HTTP/1.1 206 Partial Content

Jak go wysłać

Node.js / Expressres.status(206).end()
Python / Flaskreturn '', 206
nginxreturn 206;

Jak go sprawdzić

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Otwórz narzędzie Kody statusu HTTP