戴帽杂耍的HTTP(四)——漫天开价

各位看官来看看这些漫天开价的请求头~!这像什么话,还有王法吗?还有法律吗?

小生数了一下,居然有19个之多。但是不必着急,其实说到底,与CDN相关的缓存控制、回源控制的内容,只有8个,是咱们截图中,橙黄色标记那8个。这一次咱们先把这8个标橙色的字段搞清楚。简单而言,是2套半衣服(if)+1个哲学基本问题乱入的组合体~~~!

(一)2套半衣服(if):if-XXX都是条件请求,只有符合条件的,才会执行返回内容的动作。

1、一套合身的衣服(if-match/if-none-match)

所谓衣服合不合身主要看一个参数:ETAG。

比如下图

   同理,if-none-match,只有当请求头里面的etag值与服务器端的etag值不一样的时候,服务器才会返回内容。

2、一套改版的衣服(if-modified-since/if-unmodified-since)

如果在字段指定的日期之后发生了内容更新,请发给我新的资源,否则服务器会返回304,not modified,浏览器一般会从本地缓存拿已经获取到的信息。

3、半截裤(if-range)

if-range一般和range配合使用,当if-range字段指定的Etag值与服务器一致时,就执行range请求动作。否则服务器会返回整个文件内容,而不是指定范围的字节内容。

(二)1个哲学基本问题(我是谁?我来自哪里?我要去哪里?)

1、我是谁?(user-agent)

其实就是咱们使用了啥浏览器去请求访问的,有些时候CDN需要根据不同的user-agent,比如手机的请求,就去手机版本的源站获取内容,而PC浏览器的,则去PC Web源站拿内容。

2、我从哪里来(referer)

这是告知服务器,我的这个请求原始资源来自哪里。一般都是安全方面考虑,比如某个网盘应用,它只希望来自内容域名的链接访问才会响应。这时就可以采用这种方式,过滤非本站域名的请求。

3、我要去哪里(host)

告知服务器,我请求的host的主机名是哪一个?因为需要IP指向的服务器可能会有多个域名同时在服务器,服务器端就需要通过这个字段,来区分不同的web应用,这一点CDN尤其重要。因为一台CDN服务器会代理N多个不同客户的域名,需要用这个host去标识不同的请求去向。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值