Cookies 与 Session 的区别

什么是 Cookies

Cookies 是服务器在本地机器存储的一小段文本,用以标识和跟踪不同的客户端,弥补HTTP 协议无状态的缺陷。浏览器登陆页面的记住密码功能,在电商网站购物时的推荐功能等等一系列生活中的个性化服务与便捷都离不开 Cookies 机制的引入。服务器通过不同的 Cookies 识别不同的客户端,针对不同的客户端推送不同的内容。服务器利用 HTTP 头向客户端发送 Cookies ,在客户端,浏览器解析这些 Cookies 并将其存入本地文件中,它会自动将同一服务器的请求都附上这些 Cookies 。

Cookies 机制采用的是在客户端保存状态的方案。Cookies 的内容主要包括:名字,值,过期时间,路径和域。路径和域一起构成 Cookies的作用范围。若不设置过期时间,则表示 Cookies 的生命期为会话期间,关闭浏览器窗口,Cookies 就会消失。若设置了过期时间,浏览器就会把 Cookies 保存在硬盘上,关闭后再次打开浏览器,Cookies依然有效,直到超过设定的过期时间。

什么是 Session

与 Cookies 相同,Session 也是用来识别不同客户端的一种机制。不同的是 Session 机制采用的是在服务器端保存状态的方案。因为在服务器端保存状态的方案也需要在客户端保存一个标识,所以 Session 机制可能需要借助 Cookies 来保存标识。针对每一个客户,Session的值保存在服务器上,用SessionID来区分不同的用户, 由于Session 内容都保存在服务器上,能够防止恶意软件扫描读取包含用户名和密码等敏感信息,所以更加安全。

Cookies 与 Session的不同

  • 隐私策略不同。Cookies 存储在客户端,客户端的一些程序可能会窥探、复制甚至修改内 Cookies 内容,而 Session 存储在服务器端,敏感信息泄露的风险较低。
  • 服务器压力不同。 Session 保存在服务器端,当并发访问的用户过多时,会耗费服务器端大量的内存。 Cookies 保存在客户端,不占用服务器资源。
  • 作用范围不同。Cookies 支持跨域访问,Session 仅在所在域名内有效。

参考资料

Cookie 与 Session 的区别

cookie 和 session 的区别详解

赞赏是对作者最大的支持!
0%