学习笔记--HTTP-字段总结(四)-与代理相关的字段总结

目录

一、代理

1、定义

2、相关字段

1)Via

2)X-Forwarded-For

3)X-Real-IP

3、简述代理协议

二、缓存代理

1、相关字段

1)源服务器的缓存控制

2)客户端的缓存控制

3)其他字段


一、代理

1、定义

处于通信链路的中间位置,转发上下游的请求和响应,具有双重身份。

2、相关字段

1)Via

通用字段,请求、响应头都可以出现

每当报文经过一个代理节点,代理服务器就会把自身的信息(主机名或域名)加载到字段末尾。

示例:

Via: proxy1,proxy2

表示报文在通信链路传输经过了proxy1,proxy2两个代理

2)X-Forwarded-For

每当经过一个节点,就将请求方的IP地址追加到后面。(注意与Via的区别)

所以,字段的最左边的IP地址就是客户端的地址。

3)X-Real-IP

只记录客户端IP地址,没有中间的代理信息。

3、简述代理协议

示例:

PROXY         TCP4              1.1.1.1                   2.2.2.2                       5555                       80                      \r\n

协议名        TCP版本         请求方IP              应答方IP            请求方端口号           应答方端口号

作用:

能在不改动原始报文的情况下传递客户端的真实IP。

二、缓存代理

1、相关字段

1)源服务器的缓存控制

在Cache-control(上篇博文有总结)的基础上,新增了一些属性。

1.private 和 public 属性 :区分了客户端上的缓存和代理上的缓存

private:只能在客户端保存,不能再代理上与人共享。

public:缓存完全开放。

2.proxy-revalidate:要求代理缓存过期后必须验证,但是向代理服务器验证即可。

注意:区分must-revalidate -> 必须回源服务器验证。

3.S-maxage: 在代理上能存放多久。

注意:客户端仍然使用"max-age".

4.no-transform:代理专用。

不允许代理对花奴才能数据进行处理。

注意:源服务器设置完Cache-Control后必须加上"Last-Modified" 或 "ETag" 字段。

2)客户端的缓存控制

在Cache-control(上篇博文有总结)的基础上,新增了一些属性。

1.max-stale:可接受代理已过期的缓存,但不能过期太久,超过x秒就不要。

2.min-fresh:要求缓存必须有效,而且必须在x秒之后还有效。

示例:

max-age=5,max-stale=2

表示过期2秒内仍然有效。

max-age=10,min-fresh=1

若此时已过5秒,则5+1 < 10,该缓存仍然有效。

3.Only-If-Cached:只接受代理缓存的数据,不接受源服务器的响应。

3)其他字段

Purge : 缓存清理

可以自定义 PURGE的请求方法,删除缓存数据。


参考资料:

1.《HTTP权威指南》

2.极客时间-《透视HTTP协议》专栏-罗剑锋

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章