컨텐츠 길이 또는 전송 인코딩을 204없는 컨텐츠 응답이 고장난 HTTP 응용 프로그램입니까?

StackOverflow https://stackoverflow.com/questions/912863

  •  06-09-2019
  •  | 
  •  

문제

나는 말할 수 없다 RFC 2616 HTTP 클라이언트가 컨텐츠 길이를 포함하는 204 개의 콘텐츠 응답 또는 전송 인코딩 : 청크 헤더를 수락 해야하는지 여부. 이 헤더는 일부 HTTP 클라이언트와 프록시를 깨뜨리는 것처럼 보이며 빈 응답 본문을 읽으려고 시도하지만 사양이 읽습니다:

  1. "메시지 바디 (예 : 1xx, 204 및 304 응답 및 헤드 요청에 대한 응답)를 포함하지 말아야 할 응답 메시지는 엔터티에 관계없이 헤더 필드 다음에 항상 첫 번째 빈 줄에 의해 종료됩니다. 메시지에 헤더 필드가 있습니다.

나에게 "단체 헤더 분야에 관계없이"는 고객 이이 상황을 용납해야한다는 것을 암시한다. 그만큼 Erlang HTTP 라이브러리 이 해석을 선택했습니다. 하지만, LIGHTHTTPD 그리고 IBM 반대의 해석을 선택했습니다. 서버에 신체가없는 상태에서 금지 된 응답에 대한 헤더를 포함해서는 안됩니다.

웹 애플리케이션이 응답에서 해당 헤더를 제거해야합니까, 아니면 네트워크 인프라와 클라이언트가 204 컨텐츠, 304 수정되지 않은 등의 헤더를 견딜 수 있어야합니까?

도움이 되었습니까?

해결책

RFC7230에 따르면 (참조하십시오 http://tools.ietf.org/html/rfc7230#section-3.3.1) 29 페이지의 끝에 : 그것은 다음과 같습니다.

서버는 1xx (정보) 또는 204 (컨텐츠 없음)의 상태 코드를 사용한 응답으로 전송 인코딩 헤더 필드를 보내지 않아야합니다.

따라서 웹 응용 프로그램은 해당 헤더를 응답으로 보내지 않아야합니다.

다른 팁

HTTP 프로토콜을 자세히 알지 못한다는 점에서 올바른 것을 말할 수 없습니다.

그러나, 당신은 스스로에게 물어봐야합니다.

  1. 해당 헤더를 제거하기 위해 응용 프로그램을 변경할 수 있습니까?
  2. 아니면 해당 헤더를 무시하기 위해 응용 프로그램 소비자를 변경할 수 있습니까?

제 생각에는이 경우 응용 프로그램이 해당 헤더를 보내지 않아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top