码迷,mamicode.com
首页 > 其他好文 > 详细

关于session和cookie

时间:2019-11-10 22:29:04      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:前端   解决   登录   创建   维护   服务   传输   失效   关闭   

摘自《前端大牛爱好者-一文彻底搞懂cookie和session》

为什么需要?

  • http协议为无状态的,因此服务器无法知道是谁在浏览网页,但某些网页需要知道用户的状态,例如登录、购物车等
  • 解决方案:隐藏表单域、url重写、cookie和session

关于cookie

  • cookie是服务器传给客户端并保存在客户端的一段信息
  • 服务器将一些key/value键值对返给客户端浏览器,并添加一些限制条件
  • 条件符合时,该用户在下次访问这个服务器时,数据通过请求头被完整的带回服务器
  • 服务器根据这些信息判断不同的用户
  • cookie有大小和数量限制,客户端和服务器传输量越大,cookie越多

cookie分类

  • 会话级cookie:浏览器关闭之后Cookie失效
  • 持久级cookie:保存在硬盘的cookie,只要设置了过期时间就是硬盘级别cookie

关于session

session是基于cookie来工作的。服务器与客户端之间每次不必传输所有cookie值,而是传递一个代表不同cookie的唯一id.服务器端将cookie值与唯一id统一维护,通过id的传递就可以准确检索到对应的cookie值,既解决了服务器与客户端之间传递用户信息的需求,又解决了cookie传输量过大的引起的性能问题以及cookie泄露等安全问题。

传递session的方式

  • 通过url传递sessionId
  • 通过cookie传递SessionId
  • 通过ssl传递sessionId
  • 通过隐藏表单传递sessionId

session工作原理

  • 创建session
  • session保存
  • session的销毁:session的生命周期是从创建到超时过期,浏览器关闭只是关闭了会话级的cookie,而sessionid对应的session并没有被销毁。

两者异同

  • Session和Cookie都是为了让http协议有状态而存在
  • Session通过Cookie工作,Cookie传输的SessionID让Session知道这个客户端是谁

不同点

  • Session将信息保存在服务器中,Cookie将信息保存在客户端中

session工作流

  • 浏览器第一次访问服务器时,服务器创建Session
  • 通过Cookie将SessionID带给浏览器保存在客户端
  • 服务器根据业务逻辑将相应的客户端信息保存在session中
  • 客户端再访问时上传cookie
  • 服务器得到cookie中的sessionID,来维护存在session中的客户端信息。

关于session和cookie

标签:前端   解决   登录   创建   维护   服务   传输   失效   关闭   

原文地址:https://www.cnblogs.com/nanhuaqiushui/p/11832081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!