http是无状态(stateless)的协议,使用Cookie来管理会话(session)状态及跟踪用户行为等。Cookie是把Web服务器(或者网站)发送过来的信息临时保存到浏览器的机制。
浏览器Cookie设定有效时,当我们首次访问Web服务器时Web服务器会发送信息(例如识别用户的信息等)至浏览器,并且浏览器会将信息保存至Cookie(Key和Value组成的文件)。
Cookie保存着我们在网站上输入的用户名和密码等信息,当我们第2次访问该网站时无需再次输入用户名和密码,浏览器将会Cookie信息自动发送至网站。
那为什么需要将网站发送到浏览器的信息保存到Cookie呢?
Cookie解决了什么问题?
Cookie也好Web Storage也好,是在客户端(浏览器)保存信息的机制,那为什么需要这样的机制呢?
因为HTTP是无状态(Stateless)的协议,既HTTP以单次「请求->应答」结束通信。
所有的通信都以单次「请求->应答」结束通信,因此Web服务器无法判断该客户端是第1次访问还是第2次访问。
解决上述问题的就是Cookie。
Web服务器发行信息,浏览器把Web服务器发行的信息保存在Cookie。当浏览器进行第2次请求时将Cookie也一并发送,Web服务器读取Cookie信心,进行判断。
Cookie信息可以在客户端进行修改,当保存用户的登录信息等敏感信息时需要考虑安全性,一般会和会话(Session)信息一并使用。
- Cookie:保存在浏览器
- Session:保存在Web服务器
Cookie的种类
Cookie有2种,”1st Party Cookie” 和 “3rd Party Cookie”。
“1st Party Cookie”是由Web服务器(既网站域名)发出的Cookie,而”3rd Party Cookie”是由Web服务器以外的域名发出的Cookie。
1st Party Cookie
我们正在访问的网站发出的Cookie。1st Party Cookie存储浏览历史、登录信息、购物车里的产品信息和个人信息等。
1st Party Cookie的信息,基于用于同一个域名(既正在访问的网站域名)的原则。
3rd Party Cookie
而 3rd Party Cookie 由我们正在访问的网站域名以外的域名发出的Cookie。例如投放广告的广告商用于存储用户信息。
该Cookie信息因为跨网站被使用,也被称为跟踪Cookie。以广告为例,在A网站显示的商品或者服务,当访问B网站时也显示同样的商品或服务也是使用了 3rd Party Cookie信息。
对于广告商来说,3rd Party Cookie非常有效,然而从用户安全和隐私保护的观点来看,是一个不受欢迎的机制。
谷歌已宣布,”Google Chrome”将在2023年之前停止对3rd Party Cookie的支持。
启动 Chrome 浏览器 后,在URL上输入 “chrome://settings/cookies” ,可查看当前的Cookie设定。