栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将HTTP Range Header与字节以外的范围说明符一起使用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将HTTP Range Header与字节以外的范围说明符一起使用?

绝对-您可以自由指定自己喜欢的任何范围单位。

根据RFC 2616:

3.12范围单位

HTTP / 1.1允许客户端请求仅将一部分
响应实体(一部分)包含在响应中。HTTP / 1.1在范围(第14.35节)和内容范围(第14.16节)
标头字段中使用范围单位。可以根据各种结构单元将实体分解为子范围。

  range-unit       = bytes-unit | other-range-unit  bytes-unit       = "bytes"  other-range-unit = token

HTTP / 1.1定义的唯一范围单位是“字节”。HTTP / 1.1
实现可以忽略使用其他单位指定的范围。

关键是最后一段。真正的意思是,当他们编写HTTP /
1.1规范时,他们只概述了“字节”令牌。但是,正如您从“其他范围单位”位可以看到的那样,您可以自由提出自己的令牌说明符。

提出自己的范围说明符确实意味着您必须控制使用该说明符的客户端和服务器代码。因此,如果您拥有公开“ / document / content / http-
range-question”
URI的后端,那您就很好了。大概您正在使用一个现代的Web框架,该框架可让您检查传入的请求标头。然后,您可以查看Range值以正确执行后备查询。

此外,如果您控制向后端发出请求的AJAX代码,则应该能够自行设置Range标头。

但是,您可能会想到一个潜在的弊端:破坏缓存的潜力。如果使用的是自定义范围单位,则客户端和原始服务器之间的所有高速缓存“可能会忽略使用[字节以外的单位]指定的范围”。因此,例如,如果您在前端和后端之间有一个Squid
/ Varnish缓存,则不能保证您希望的结果将从缓存中得到!

您可能还会考虑一种替代实现,其中使页面成为URI的“参数”而不是使用查询字符串。例如:/ document / content / http-range-
question / page / 1。对于您的服务器端来说,这可能需要做更多的工作,但是它是HTTP / 1.1兼容的,因此缓存应该适当地对待它。

希望这可以帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387552.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号