HTTP中Cookie,Session的理解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013251692/article/details/78058696

Q: 为什么要使用Cookie和Session

  • 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,因此产生了Session ID来标记区分

客户端和服务器端的会话步骤可简单分为如下3步:

  1. 用户在客户端输入自己的账户密码登录
  2. 服务器端”记住”你并自动生成Session ID,然后包含在Cookie中,发送给客户端
  3. 客户端再次和服务器交互时会发送包含之前收到的Session ID的 Cookie,让服务器端验证客户端的用户

Q: Session的特点

  • Session是保存在服务器端的
  • 记录着你的登录状态,账号,密码什么的,但一般不会保存在数据库中,因为
    Session是有时效的,一般只有20,30分钟,并且Session中的内容一般是客户端用户需要不断更改的值,因此保存在数据库中没有意义.
  • Session ID在本地的Cookie也保存一份.,每次客户端和服务器端的交互都是靠Session ID进行识别区分的

Q:Cookie的特点

  • Cookie是保存在用户端的
  • 如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间
  • 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了,这种coolie一般保存在内存中
  • 构成:名字,值,过期时间,路径和域

Q:Session一定要借助Cookie吗?

  • 不需要,在浏览器禁用Cookie时可以使用URL地址重写功能实现Session,原理是将用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id.这样即使客户端不支持Cookie,也可以使用Session来记录用户状态.

猜你喜欢

转载自blog.csdn.net/u013251692/article/details/78058696