美文网首页
HTTP Cookie和Session

HTTP Cookie和Session

作者: 匿于烟火中 | 来源:发表于2020-02-18 17:47 被阅读0次

Cookie:服务端标识客户端请求是否来自同一浏览器,让浏览器积累服务端特有的信息,每次访问都能把这些信息提供给客户端

  • 请求过程
    客户端发送请求=>服务端发送响应set-cookie,包含本次请求的用户信息=>浏览器接收信息,保存cookie,并设置响应头的cookie内容
    通过设置cookie的domain可以知道每个cookie对应哪个服务器
    path可以指定了主机下哪些路径可以接受cookie
    会话期cookie退出后即失效,持久化cookie保存在硬盘中
    cookie设置为secure,标识只能通过HTTPS发送该cookie

  • 应用场景
    会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
    个性化设置(如用户自定义设置、主题等)
    浏览器行为跟踪(如跟踪分析用户行为等)

mozilla Web Cookies

Session:因为HTTP是无状态协议,一次请求结束之后,下一次请求并不知道之前的请求做了什么,状态如何。在某些场景下,比如用户登陆后,我们希望其他HTTP请求能记录下用户已经登陆的这个状态,以及相关的用户信息,就可以从session中获取相关数据。

一般来说,session中适合存储一些安全和需要持久化的数据,比如用户信息,登陆状态。因为session保存在服务端开辟一块内存中,并会为客户端创建一个session id,并且把session id返回给客户端。所以session中也不宜保存太多数据。

因为session保存在服务端,因此服务端需要为session设定个过期时间,防止过多session占用内存。

有了cookie为什么还需要session?

1.减少客户端占用空间,用session只需要在客户端保存一个id,实际上大量数据都是保存在服务端。如果全部用cookie,数据量大的时候客户端是没有那么多空间的。
cookie只是实现session的其中一种方案。虽然是最常用的,但并不是唯一的方法。
2.全部在客户端保存,服务端无法验证,这样伪造和仿冒会更加容易。(伪造一个随机的id很难,但伪造另一个用户名是很容易的)
3.全部保存在客户端,那么一旦被劫持,全部信息都会泄露
4.节约客户端带宽,客户端数据量变大,网络传输的数据量也会变大
session和cookie的作用

相关文章

网友评论

      本文标题:HTTP Cookie和Session

      本文链接:https://www.haomeiwen.com/subject/nreufhtx.html