我需要向服务器发送HTTP GET请求以检索字节范围内的HTML页面。 但是发送以下请求会以字节为单位检索整个页面。 代码示例也很好。
GET / ~aruhela HTTP / 1.1 \ r \ nHost:www.cse.iitd.ernet.in \ r \ nRange:bytes = 0-10 \ r \ nUser-Agent:HTTPGET 1.1 \ r \ n \ r \ ñ
答案 0 :(得分:1)
如果服务器不支持字节范围,它将忽略您的Range
标头并以正常200
响应发送整个文件。你无能为力,只需接受文件并继续前进。
如果服务器支持字节范围,它将在206
响应中发送请求的字节,或者如果范围不可接受,它将发送416
响应。
无论哪种方式,任何Accept-Ranges: bytes
或GET
响应中都存在HEAD
标头,它将告诉您服务器是否允许该请求资源上的字节范围。
如果要检查资源是否支持字节范围而不下载,请使用HEAD
请求。
要从先前的GET
请求恢复损坏的下载,您必须使用HEAD
查询服务器,否则请记住先前的请求是否有Accept-Ranges: bytes
响应标头,并执行操作相应地在随后的GET
个请求中。您还应该考虑ETag
响应标头,如果提供了一个If-Match
请求标头和最后一个已知的ETag,那么您可以检测资源是否在GET
之间被修改请求,以便您可以在需要时从头开始。