2010-07-21 12 views
19

콘텐츠 길이 헤더를 설정하고 청크 분할 전송 인코딩을 사용할 수 있습니까? 그렇게하면 청크 분할을 사용할 때 클라이언트 측에서 응답 길이를 모르는 문제를 해결할 수 있습니까?청크 분할 인코딩 및 콘텐츠 길이 헤더

제가 생각하는 시나리오는 전송할 큰 파일이 있고 크기를 결정할 때 문제가 없지만 완전히 버퍼링하기에는 너무 큽니다. (청크 분할을 사용하지 않는 경우 먼저 전체 응답을 버퍼링해야합니까?)

감사합니다.

+3

RFC 참조 또는 이와 유사한 내용을 언급 할 수 있다면 좋을 것입니다. – p00ya00

답변

22

1) 아니오 : "메시지는 Content-Length 헤더 필드와 비 신원 전송 코딩을 모두 포함하지 않아야합니다. 메시지에 비 신원 전송 코딩이 포함되어 있으면 Content-Length를 무시해야합니다. " (RFC 2616, Section 4.4)

2) 아니요, 콘텐츠 길이와 스트림을 사용하십시오. 프로토콜은 구현이 어떻게 작동하는지 제한하지 않습니다.

+0

청크 분할 전송 인코딩이 stream에 대한 예라고 생각합니다. 너 여기에 언급하지 않았 니? 범위 요청을 포함 할 수도 있습니다. 내가 맞습니까? –

7

글쎄, 당신은 항상 파일의 크기를 나타내는 헤더를 보낼 수 있습니다. 비슷한 것 response.addHeader("File-Size","size of the file");
그리고 Content-Length 헤더를 무시하십시오.

이 값을 읽으려면 클라이언트 구현을 조정해야하지만 원하는 모든 것을 얻을 수 있습니다.

+0

간단한 해결책이 가장 좋습니다 :-) – EZDsIt

+1

규약은 비표준 헤더에 접두어'X '를 사용하는 것입니다. HTTP 프록시는 비표준 비 -X 헤더를 삭제할 수도 있습니다. – MSalters

+0

MSalters에게 감사의 말을 전합니다. – Gyan

관련 문제