2014-10-28 2 views
-1

http://www.google.com/에서 원시 응답을 받으면 Content-Length 헤더가 누락되었습니다. 대신 수신 할 바이트 수는 \r\n\r\n 헤더 코드 끝 부분에서 실제 내용 앞에옵니다.HTTP 응답 : Google이 내용 길이를 잘못 배치했습니다

원시 응답을보고 8000은 줄 끝 부분에 \r\n을 포함합니다.

부분 구글 응답

헤더

HTTP/1.1 200 OK 
Date: Tue, 28 Oct 2014 18:38:37 GMT 
Expires: -1 
Cache-Control: private, max-age=0 
Content-Type: text/html; charset=ISO-8859-1 
Set-Cookie: ... 
Set-Cookie: ... 
P3P: ... 
Server: gws 
X-XSS-Protection: 1; mode=block 
X-Frame-Options: SAMEORIGIN 
Alternate-Protocol: 80:quic,p=0.01 
Transfer-Encoding: chunked 

8000  # has '\r\n', I am assuming this is the content-length? 

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content...` 

최종 응답

그래서 ('\ 연구 \ 없음 \ 연구 \ 없음'에 의해 표시) 헤더의 끝 제 질문은 왜 구글이 그렇게 특별한 지, HTTP 바퀴의 발명품을 망칠 수 있다는 것입니다. 그리고 모든 내 답변에서 또는 Google에서 이러한 일이 발생했는지 여부를 설명해야합니다.

+0

비난하기 전에 약간의 조사를 할 수 있습니다. 아이러니하게도, '콘텐츠 길이 누락'이라는 Google 검색 결과의 첫 번째 결과는 답을 알 수있는 단서를 제공합니다. 또한 "HTTP 바퀴를 재발 명"하는 경우 표준 HTTP 헤더 ("X-"로 시작하지 않는 모든 것)에 대해 배울 수있는 모든 작업을 수행해야합니다. 'Transfer-Encoding' 헤더에 대해서 궁금해했다면, 그 답을 찾은 것입니다. – krait

답변

2

매우 일반적이므로 모든 응답에서이 가능성을 고려해야합니다. 이것에 관한 어떤 것도 "특별하다"그리고 이것은 정말로 완전히 합법적 인 행동이다.

콘텐츠 길이는 실제로 서버가 응답하는 Chunked Transfer Encoding에 따라 청크 크기입니다.

청크 크기가 0 일 때 응답이 완료되므로 청크 응답의 유효 내용 길이는 청크 크기의 합과 같습니다.

이것은 1999 년 이래 HTTP 사양의 일부입니다.

+0

나를 계몽 해 주셔서 감사합니다. – Crispy

관련 문제