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

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

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

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

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

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

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

比如下图

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

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

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

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

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

3、半截裤(if-range)

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

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

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

1、我是谁?(user-agent)

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

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

2、我从哪里来(referer)

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

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

3、我要去哪里(host)

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

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

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


相关文章:

  • 2021-11-27
  • 2021-12-12
  • 2021-12-10
  • 2021-09-11
  • 2021-12-01
  • 2022-01-22
  • 2022-12-23
猜你喜欢
  • 2021-12-16
  • 2021-09-06
  • 2022-01-18
  • 2021-06-09
  • 2021-08-05
  • 2022-12-23
  • 2021-12-10
相关资源
相似解决方案