学习笔记--HTTP-字段总结(三)-与Cookie和Cache相关的字段总结

目录

 

一、Cookie相关

1、Set-Cookie 和 Cookie

2、Cookie常见的属性值

1)Cookie的生命周期

2)Cookie的作用域

3)Cookie的安全性

二、Cache 缓存相关报文字段

1、浏览器请求数据及使用Cache的过程

2、Cache-Control相关字段

1)Cache-Control在响应报文中

2)其他属性

3)Cache-Control在请求报文中

三、缓存数据更新

1)请求过程

2)相关字段


一、Cookie相关

1、Set-Cookie 和 Cookie

响应头字段:Set-Cookie

请求头字段:Cookie

请求过程:当客户端第一次与服务器通信时,服务器会为这个客户端创建一个身份标识(key=vaule),放进Set-Cookie字段里,随着响应报文一起传给客户端。客户端发现响应报文里有Set-Cookie这个字段,就将key=value值保存起来。当第二次这个客户端再与服务器通信时,就会用Cookie字段带着key=value值去请求服务,服务器就能直接识别客户端的身份。

服务器可一次设置多个Cookie值:

实例:

响应报文:

Set-Cookie:a = xxx

Set-Cookie:b = xxx

请求报文:

Cookie:a = xxx;b = xxx

2、Cookie常见的属性值

1)Cookie的生命周期

 Expires:过期时间,绝对时间点,可理解为“截止时间”;

Max-Age:相对时间,单位是秒;

注意:两者同时出现,优先采取Max-Age

2)Cookie的作用域

使浏览器仅发送给特定的服务器和URI,防止信息盗用。

Domain:域名

Path:路径

3)Cookie的安全性

HttpOnly:此Cookie只通过浏览器HTTP传输协议传输;

SameSite:防范“跨站请求伪造”攻击

示例:

SameSite = Strict  -> Cookies不随连接跳转跨站发送;

SameSite = Lax -> 允许GET/HEAD,不允许POST;

Secure:Cookie仅能用HTTPS协议传输加密传输,明文的HTTP协议会禁止发送。

二、Cache 缓存相关报文字段

1、浏览器请求数据及使用Cache的过程

step1:浏览器发现缓存无数据,于是发送请求,向服务器获取资源;

step2:服务器响应请求,返回资源,同时标记资源的有效期;

step3:浏览器缓存资源,等待下次重用。

2、Cache-Control相关字段

1)Cache-Control在响应报文中

响应报文,资源的有效时间,单位秒。

示例:

Cache-Control:max-age = 30   -> 这个页面只能缓存30秒

注意:max-age是从报文创建之时就开始计算时间,包含再链路中传输的时间。但是Cookie的生命周期是响应报文到达客户端开始计算。

2)其他属性

no-store : 不允许缓存,用于变化非常频繁的数据。

no-cache:允许缓存,但使用前必须验证是否过期,是否有最新的版本。

nust-revalidate:缓存不过期就可以使用,过期了如果还想用就必须去服务器验证。

3)Cache-Control在请求报文中

可以表示向服务器请求一个最新的的数据版本。

示例:

Cache-Control : max-age = 0

Cache-Control : no-cache

三、缓存数据更新

1)请求过程

在请求头中添加一些字段,请求服务器进行判断缓存是否过期,若过期则重新发送数据,没过期则不用发送。

2)相关字段

响应字段:

ETag:资源的唯一标识。

在客户端与服务器第一次就某个资源进行通信时,响应报文里提供。

Last-modified:文件的最后修改时间。

在客户端与服务器第一次就某个资源进行通信时,响应报文里提供。

请求字段:

If-Modified-Since:询问服务器资源是否发生变化。与Last-Modified搭配。

If-None-Match:询问服务器资源是否能够匹配。与ETag搭配。

其他字段:

If-Match 、 If-Range 、 If-Unmodified-Since 

3)状态码
304 Not Modified


参考资料:

1.《HTTP权威指南》

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

 

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