Cookie与Session浅析 - 分布式登录系统逐步实现(一)

《分布式登录系统逐步实现》系列文章,有兴趣可以持续关注。
转发请说明来源。

什么是 Cookie ?

Cookie实际是由客户端维护的一段文本,用于记录用户状态。

Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。

Cookie通信

服务端程序客户端程序都有权限修改Cookie。服务端通过修改响应头通知客户端Cookie修改,客户端通过请求头发送当前Cookie信息。

Cookie与Session浅析 - 分布式登录系统逐步实现(一)_第1张图片
Cookie通信

Cookie不可跨域名

很多网站都会使用Cookie。例如,Google会向客户端颁发Cookie,Baidu也会向客户端颁发Cookie。那浏览器访问Google会不会也携带上Baidu颁发的Cookie呢?或者Google能不能修改Baidu颁发的Cookie呢?

答案是否定的。Cookie具有不可跨域名性。根据Cookie规范,浏览器访问Google只会携带Google的Cookie,而不会携带Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie。

Cookie在客户端是由浏览器来管理的。浏览器能够保证Google只会操作Google的Cookie而不会操作Baidu的Cookie,从而保证用户的隐私安全。浏览器判断一个网站是否能操作另一个网站Cookie的依据是域名。Google与Baidu的域名不一样,因此Google不能操作Baidu的Cookie。

需要注意的是,虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。

Cookie与Session浅析 - 分布式登录系统逐步实现(一)_第2张图片
客户端Cookie模型

什么是 Session ?

Session意为“会话”,Session是另一种记录用户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。Session一般用于敏感信息的存储。

Session可以说是Cookie的升级版。服务端把一段较短的 Session 证书存到Cookie内,当客户端把 Session 证书提交到服务端,服务端通过检验等相关步骤后,识别用户状态,并获取当前Session信息。

Session通信

Cookie与Session浅析 - 分布式登录系统逐步实现(一)_第3张图片
Session通信

感谢

Cookie/Session机制详解

你可能感兴趣的:(Cookie与Session浅析 - 分布式登录系统逐步实现(一))