2012-02-16 2 views
3

확인을 요청 텍스트는 다음과 같습니다HTTP 요청/1.1 200 I 이미지를 요청하는 서버에 HTTP 요청을 전송하지만, 몇 가지 범위로 범위 헤더를 사용하고

GET /images/nav_logo102.png HTTP/1.1 
Host: www.google.com.eg 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Language: en-us,en;q=0.5 
Cookie: PREF=ID=8aacc11c670a5a37:U=cba349de64cbf880:FF=0:LD=en:TM=1310392358:LM=1327944471:S=zc8_vfTdF5U3C-XN; NID=56=15iHWUMVXBGpdEkEcMCeu32GUL6GlK3aEB5vmocRT4kdILhwGpe9mn6DqDrnZBYWJzA2g4YzfXP8IP3tH7Hw4CzC6FwDrV3uqgv3XhCqmrWI0TBD52Vs3nbdth5YzkOR; SID=DQAAAMUAAAC5feWAhXsCT9NT6ObU32dOLBTU_KtRzxc7Ug6QWIhQW_bpXNvzQtoddtt-a2BbUefv89ZjwNwgrgCiCse3INYkeCyfR7PVPaoDPEmUWQ_0sHXBgbf5U0JBg0XxT8KZMmY9kLOZfEKGg0UGtfNNk8uJKWwPXWlkCYjGalQFyVinUNwiYqayYHGvnA0vtiftBCgqnpHawkyVWoo9hCk3vfDKrRHSdO-GQZoxbL21VlH2dbsJJrnJBaVlR-y8KTg14eLgYpt2swZJxcVZwHThhaF-; HSID=AJLTtk1qkIE6L4aLe; GZ=Z=1 
User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:5.0) Gecko/20100101 Firefox/5.0 
Range: bytes=2048-4095,4096-6143,6144-8191,8192-10239,10240-12287,12288-14335,14336-16383,16384-18431,18432-20479,20480-22527,22528-24575,24576-26623,26624-26722 

하지만, 서버는

HTTP/1.1 200 OK 

로 응답과 내가 같은 일을하려고하지만, 단 하나 개의 범위로 작동하면 전체 이미지 를 보내고 난 단지 요청 된 범위를 얻을 수있다. 요청을 어떻게 작성해야하는지 알기 원하십니까?

답변

4

마지막 헤더 다음에 \ r \ n \ r \ n을 추가해야합니다.

요청 :

GET /images/djsBox_2.jpg HTTP/1.1\r\n 
Range: bytes=0-2,10-20\r\n 
Host: www.djsoft.net\r\n 
Accept: */*\r\n 
\r\n 

나는 WFetch 도구를 확인하고 응답 HTTP/1.1 206 Partial Content\r\n

입니다 그리고 서버가 실제로 데이터의 2 개 부분 반환 : 이미 연구 \이

Accept-Ranges: bytes\r\n 
Content-Length: 196\r\n 
Content-Type: multipart/byteranges; boundary=4b9e42cd78baa9\r\n 
\r\n 
\r\n 
--4b9e42cd78baa9\r\n 
Content-type: image/jpeg\r\n 
Content-range: bytes 0-2/4543\r\n 
\r\n 
яШя\r\n 
--4b9e42cd78baa9\r\n 
Content-type: image/jpeg\r\n 
Content-range: bytes 10-20/4543\r\n 
\r\n 
\x000\x001\x001\x001\x000`\x000`\x000\x000я\r\n 
--4b9e42cd78baa9--\r\n 
+0

을 \ n \ r \ n 마지막 헤더 이후 ... "코드 샘플"형식으로 인해 여기에 표시되지 않습니다. –

+0

모든 범위가 전체 파일에 추가되면 결과 코드는 200이 될 것입니다. 2 개의 첫 번째 범위 만 남겨두면 어떻게됩니까? – djsoft

+0

그 같은, 나도 해봤 어 범위 : 바이트 = 0-0, HTTP 1.1 표준에서 예제로 사용되는 -1,하지만 동일한 결과를 얻을 –