cookie解决了什么问题(cookie处理)

图片授权基于 www.pixabay.com 相关协议
要说 Cookie 得先说 HTTP 的「无状态」协议。

什么是「无状态」?

就是没有上下文的连接状态。换句话说:浏览器向服务器发送请求,服务器并不知道这个浏览器是谁。

浏览器说:「你好,我是浏览器01号,我想要 index.html 页面」

服务器说:「你好01号,你有权限,给你 index.html 页面」

浏览器说:「你好,我是浏览器01号,我想要 about.html 页面」

服务器说:「你好01号,你有权限 ,给你 about.html 页面」

每次浏览器都会向服务器表明自己的身份,而服务器并不认识它,也不记录它是谁。就好比服务器有「失忆症」,见过之后就忘记了,再见面,你还要再做自我介绍。

这就是无状态。

大家在网上浏览信息的时候,浏览器是怎样记录并保持你的登录状态呢?

Cookie 来了。

Cookie 相当于服务器给浏览器的一个标识符,浏览器第一次访问服务器的时候,服务器就会返回一个属于你当前浏览器的标识符。下次你再发送或者请求数据的时候,会连带着 Cookie 一起发送回去,服务器一解析标识符,就知道你是谁,你从哪里来。

换句话说:Cookie 实现了「有状态」。不过,Cookie 是由浏览器负责存储的,只是在当前浏览器生效。如果换了浏览器,那就需要重新绑定 Cookie。

几个属性:

1、传递 Cookie 使用了两个字段:响应头字段 Set-Cookie 和 请求头字段 Cookie。

2、Cookie 可以设置有效期,使用 Expires 和 Max-Age 两个属性。

3、Cookie 还可以设置作用域,可以使浏览器只发送给特定的服务器,通过 Domain 和 Path 指定 Cookie 所属的域名和路径,发送请求之前浏览器会去提取并对比。

负载均衡是基于 HTTP 的「无状态」处理的,浏览器发送一个数据给服务器,由于没有状态的区别,所以可以让「负载均衡」把请求转发到任意一台服务器。

微信小程序是没有「Cookie」的,所以需要在做项目的时候手动存一下 Cookie 。


内容参考于:极客时间《透视 HTTP 协议》

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34632.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月12日 上午7:10
下一篇 2024年4月12日 上午7:12

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注