2011-12-25 1 views
8

일부 상태 코드 like 304이 메시지 본문을 포함하지 않고 CRLF에 의해 종료 될 때까지 HTTP를 좋아하기 시작했습니다.응답 상태를 포함하지 않는 HTTP 상태 코드의 포괄적 인 목록

전체 목록은 어디에 있습니까? 지금까지 나는 100-199, 204304을 받았습니다. 다른 사람들이 있습니까?

EDIT : 아니요, 표준에 따릅니다. 답변 해주셔서 감사합니다.

나는 지속적인 연결로 메시지를 구분하는 것에 관심이있다. 즉 하나의 HTTP 메시지가 멈추고 다음 메시지가 시작됩니다.

+0

이것은 HTTP 상태 코드 (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)의 목록입니다. 응답 본문을 반환하는 코드가 일부 상황에서 다르게 동작 할 수 있고 응답이없는 상태로 돌아 오는 것을주의하십시오 몸체 (서버 버그, 네트워크 문제 등) ... 순수한 표준에 의존하지 말고, 적절하고 우아하게 받아 들여야합니다. 최소한 코드가 죽거나 잘못된 결과를내는 방식으로 처리하는 것이 좋습니다. ... – Yahia

+0

@Yahia 내가 우려하는 것은 유일한 HTTP 메시지 구분입니다. 즉, 한 메시지가 멈추고 다음 메시지가 어디에서 시작됩니까? – unixman83

+0

내 전체 댓글을 읽었습니까? – Yahia

답변

14

몸은 모든 4xx 오류 코드에 대한 선택 사항입니다 : 오류 상황에 대한 설명을 포함하는 엔터티를 포함해야, HEAD 요청에 서버를 응답 할 때를 제외하고

, 그리고 그것은을인지 임시 또는 영구적 인 상태. 오류 상황에 대한 설명을 포함하는 엔터티를 포함해야, HEAD 요청에 서버를 응답 할 때를 제외하고

...

(다음 5xx에 대한 동일

그 (것)들은 진짜로,해야한다, 그러나 반드시해야한다. 그러나 반드시 아니다.)

1xx 메시지 내가 말할 수있는 한 몸을 포함하지 마라. 201 (204205 이외에)에는 본문이있을 필요가 없습니다. 3xx은 혼합 가방이지만 몸집이 많은 것은 선택 사항입니다.

출처 : HTTP/1.1: Status Code definitions.

메시지 길이 정보에 대한 규칙은 HTTP Message - 4.4 Message Length에 설명되어 있습니다. 그것은 사소한 것이 아닙니다.

+0

몸체를 포함하지 않으면'Content-Length : 0' 헤더를 포함합니까? 영구 연결을 사용하여 이들을 어떻게 구분합니까? – unixman83

+0

@ unixman83 : 메시지 길이 규칙에 대한 링크로 편집되었습니다. – Mat

관련 문제