ajax请求header带Range参数,将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兼容的,因此缓存应该适当地对待它。

希望这可以帮助。

2020-07-26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值