带有范围标题的HTTP HEAD请求

时间:2013-08-31 14:10:49

标签: http iis-7 http-headers

我正在使用IIS作为媒体服务器的DLNA Server。某些DLNA客户端发送http HEAD 请求范围标题:

Command: HEAD

+ URI:/RDLDLNA/Streamer.ashx?media=/Videos/Guca%20Distant%20Trumpet/Gucha%20Distant%20Trumpet.mp4     ProtocolVersion:HTTP / 1.1     主持人:192.168.1.100     范围:字节= 0-     transferMode.dlna.org:流媒体     HeaderEnd:CRLF

我只回复" Accept-Ranges Bytes"。但IIS提供状态码416错误。看起来此错误状态阻止客户端继续。

  1. 是否允许在HEAD请求中发送此类范围标头?
  2. 我应该回答客户端是否知道支持范围并且调用IIS生成的状态码416。
  3. 是否有可能以OK状态覆盖错误的IIS状态代码?

2 个答案:

答案 0 :(得分:2)

ietf.org RFC7233部分3.1 Range中,您可以找到摘录

  

服务器必须忽略使用GET以外的请求方法接收的Range头字段

对我而言,这意味着:您可以使用HEAD命令发出范围请求,但您的服务器必须忽略它。

答案 1 :(得分:0)

IIS 6.0和IIS 7.0将接受包含Range标头的HEAD请求(并返回某些媒体播放器(如Popcorn Hour A-100)期望的状态206。

我最近需要让IIS 7.5将这些请求与IIS 6.0 / 7.0相同,并且能够使用Beta http.sys v6.1.7000.0和pre-Beta static.dll v6.1.6801.0来做到这一点。 (必须在64位版本的Windows上规避驱动程序签名的强制实施)