我正在开发一个简单的下载应用程序.在请求以下文件时,firefox和我的应用程序都没有获取content-length字段.但是如果我使用wget服务器发出请求会发送内容长度字段.我确实更改了wgets用户代理字符串以进行测试,它仍然获得了content-length字段.
任何想法为什么会这样?
wget请求
---request begin--- GET /dc-13/video/2005_Defcon_V2-P_Zimmerman-Unveiling_My_Next_Big_Project.mp4 HTTP/1.0 User-Agent: test Accept: */* Host: media.defcon.org Connection: Keep-Alive ---request end--- HTTP request sent, awaiting response... ---response begin--- HTTP/1.0 200 OK Server: lighttpd Date: Sun, 05 Apr 2009 04:40:08 GMT Last-Modified: Tue, 23 May 2006 22:18:19 GMT Content-Type: video/mp4 Content-Length: 104223909 Connection: keep-alive
firefox请求
GET /dc-13/video/2005_Defcon_V2-P_Zimmerman-Unveiling_My_Next_Big_Project.mp4 HTTP/1.1 Host: media.defcon.org User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.defcon.org/html/links/defcon-media-archives.html Pragma: no-cache Cache-Control: no-cache HTTP/1.x 200 OK Server: lighttpd Date: Sun, 05 Apr 2009 05:20:12 GMT Last-Modified: Tue, 23 May 2006 22:18:19 GMT Content-Type: video/mp4 Transfer-Encoding: chunked
更新:
是否有一个我可以发送的标题,告诉Lighthttpd不要使用分块编码.我原来的问题是我urlConnection
用来抓取我自己发送HTTP 1.1请求的java应用程序中的文件.
我想知道文件的大小,以便我可以更新我的百分比.
GET /dc-13/video/2005_Defcon_V2-P_Zimmerman-Unveiling_My_Next_Big_Project.mp4 HTTP/1.1
Firefox正在执行HTTP 1.1 GET请求.Lighthttpd理解客户端将支持分块传输编码并以块的形式返回内容,每个块报告自己的长度.
GET /dc-13/video/2005_Defcon_V2-P_Zimmerman-Unveiling_My_Next_Big_Project.mp4 HTTP/1.0
另一方面,Wget执行HTTP 1.0 GET请求.Lighthttpd,了解客户端不支持HTTP 1.1(以及分块传输编码),将内容返回到一个块中,并在响应头中报告长度.