cookie和session区别及联系
区别
-
http的无状态请求
因为http只想做规范web数据传输格式,不保存请求的状态信息,所以,如果需要保存请求信息,要么放在浏览器中,要么保存在服务器,因此就有了Cookie和Session; -
Cookie
Cookie是一种浏览器缓存,和SessionStorage,LocalStorage功能类似,都是为了在浏览器端保存用户信息(一般是用户信息较多)或者其他的重要信息(单个项的大小不能超过4k,包括 名字,值,过期时间,路径和域);
好处是将信息缓存在内存当中,方便浏览器再次直接获取相关信息。当然缺点是容易信息泄露,造成安全隐患; -
Session
是为了把客户端状态信息(比如用户登录时的用户信息等)保存在服务器端,保证了安全性,可控,并且大小可以设置,比如tomcat中的HttpSession;
联系
浏览器第一次访问服务器的时候,因为服务器没有存储相关Session,所以会新建一个Session(可以用来存储信息),
以及与此Session相关联的sessionid(不重复字符串),将sessionid作为key,Session作为value值存储到服务器当中(默认有效期为30min),然后将sessionid放到响应头的set-cookie当中返回给客户端,客户端接收到并将sessionid放到Cookie当中,之后浏览器再次访问服务器的时候,客户端会自动将此sessionid放到请求头的Cookie当中,后面服务器就可以根据此sessionid寻找到对应Session对象;
分类:
浏览器知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现