2011-12-25 6 views
8

Zaczynałem lubić HTTP, dopóki nie odkryłem, że niektóre kody statusu like 304 nie zawierają treści wiadomości i są przerywane przez CRLF.Pełna lista kodów stanu HTTP, KTÓRE NIE ZAWIERAJĄ ODPOWIEDZI CIAŁA

Gdzie znajduje się wyczerpująca lista? Do tej pory dostałem: 100-199, 204 i 304. Czy są jeszcze jakieś inne?

EDYCJA: Nie, nie zgodnie ze standardem. Dziękuję za odpowiedź.

Jestem zaniepokojony ograniczaniem wiadomości za pomocą trwałych połączeń. tj. gdzie następuje zatrzymanie jednej wiadomości HTTP i rozpoczyna się następna.

+0

To jest lista kodów stanu HTTP (http://pl.wikipedia.org/wiki/List_of_HTTP_status_codes) ... ZOBACZ, że nawet kody, które zwrócą treść odpowiedzi, mogą w niektórych sytuacjach zachowywać się inaczej i wracać bez odpowiedzi Ciało (błąd serwera, porblem sieci, cokolwiek) ... Zdecydowanie nie polecałbym polegać na czystym standardzie, ALE by poradzić sobie z tym, co otrzymujesz odpowiednio i z wdziękiem - przynajmniej w taki sposób, że twój kod nie tylko umiera, albo daje nieprawidłowe wyniki ... – Yahia

+0

@Yahia, co mnie martwi, to TYLKO HTTP Message Delimiting. tj. Gdzie się kończy jedna wiadomość i zaczyna się następna? – unixman83

+0

Czy przeczytałeś mój pełny komentarz? – Yahia

Odpowiedz

14

Ciało jest obowiązkowe dla wszystkich kodów 4xx błąd:

wyjątkiem sytuacji, gdy odpowiada na żądanie HEAD, serwer POWINIEN obejmują podmiot zawierający wyjaśnienie sytuacji błędu, i czy jest to tymczasowy lub stały stan.

samo dla 5xx:

wyjątkiem sytuacji, gdy odpowiada na żądanie HEAD, serwer POWINIEN to podmiot zawierający wyjaśnienie sytuacji błędu ...

(POWINNA to oznaczać, że naprawdę, powinni, ale to NIE MUSI.)

Wiadomości 1xx nie zawierają ciała, o ile wiem. 201 (oprócz 204 i 205) nie musi mieć ciała. Model 3xx to torba mieszana, ale ciało jest opcjonalne dla wielu z nich.

Źródło: HTTP/1.1: Status Code definitions.

Zasady dotyczące informacji o długości wiadomości są opisane w dokumencie HTTP Message - 4.4 Message Length. To nie jest dokładnie trywialne.

+0

jeśli nie zawierają treści, czy zawierają nagłówek 'Content-Length: 0'? W jaki sposób ograniczyć te połączenia za pomocą trwałych połączeń? – unixman83

+0

@ unixman83: edycja z linkiem do reguł długości wiadomości. – Mat