昨天I asked关于PHP的服务字节范围。今天我的问题是 - 在提供多个请求的字节范围时,如何设置Content-Type
和Content-Disposition
标头?我应该为每个字节范围重复它们还是应该在开始时输出一次?或者也许我根本不应该输出它们,因为客户应该已经知道它的要求了什么?
答案 0 :(得分:1)
通常,如果您返回整个资源或仅返回部分资源,HTTP响应标头应该相同(重复);当然除了Content-Range标题会有所不同。
请记住,HTTP是无状态的,因此每个响应都应该是完整的并且能够独立存在。如果服务字节范围,你真的应该使用实体标签(ETags);这样客户端就不可能请求并获得两个真正属于同一资源的不同修订版本的单独字节范围。
答案 1 :(得分:1)
查看RFC 2616(特别是第14.16和19.2节)。如果客户端请求单个字节范围,则响应必须包含单个字节范围,并且Content-Type和Content-Disposition标头值不会更改行为(它们应反映所服务文件的类型)。但是,如果客户端在单个请求中请求多个字节范围,则响应必须使用Content-Type“multipart / byteranges”,而body中的每个部分都指定自己的Content-Type标头。