请求指定范围的数据,Content-Range:bytes 0-599/12341234代表的意思是什么?网络上说是实体长度,但599-0=1234? 希望网络高手给于解答!

解决方案 »

  1.   

    一般断点下载时才用到,我正好在搞这个,所以来帮解答一下:
    Content-Range
    实体头.用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:Content-Range: bytes (unitSPfirst byte pos) - [last byte pos]/[entity legth]
    一般向服务器请求 Range:(unitSPfirst byte pos)-[last byte pos] 服务器才会向客户返回这个头
    如向服务器 GET
    008-02-21 05:49:47 GET /file.rar HTTP/1.1
    2008-02-21 05:49:47 Connection: close
    2008-02-21 05:49:47 Host: 116.1.219.219
    2008-02-21 05:49:47 Range: bytes=100-300  //意思是下载file.rar的100到300这部分数据一般正常回应
    2008-02-21 05:49:47 Content-Length: 200    //300-200=100,就是要下载的大小
    2008-02-21 05:49:47 Content-Type: application/octet-stream 
    2008-02-21 05:49:47 Content-Range: bytes 123-456/801 //801:文件总大小+1(一般都+1的,我在研究ing)
    还有什么问题Q or E-mail 我:replace(liwqbasic#163.com,"#","@")
      

  2.   

    我的问题解决,是一个低级错误
    请求下载整个文件:
    GET   /file.rar   HTTP/1.1 
    Connection:   close 
    Host:   116.1.219.219 
    Range:   bytes=0-801 //一般请求下载整个文件是bytes=0- 或不用这个头
    一般正常回应 
    HTTP/1.1 200 OK
    Content-Length:   801       
    Content-Type:   application/octet-stream   
    Content-Range:   bytes   0-800/801 //801:就是文件总大小,位置是0开始的,而不是从1!!!我的错误所在
    还有什么问题Q or E-mail 我:replace("liwqbasic#163.com","#","@")