💟💟前言
友友们大家好,我是你们的小王同学😗😗
今天给大家打来的是 Cookie和Session的区别
希望能给大家带来有用的知识
觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄
小王的主页:小王同学🚗
小王的gitee:小王同学🏩🏩
小王的github:小王同学💦
-
cookie是
客户端
的机制,Session是服务器端
的机制 -
Cookie
和Session
经常在一起配合使用。但是不是必须配合 -
完全可以用Cookie来保存一些数据在客户端 这些数据不一定是用户身份信息,也不一定是
token/sessionid
-
session 中的 token /sessionid 也不需要非得通过
Cookie/Set-Cookie
传递
HttpServletRequest 类中的相关方法
方法
HttpSession
getSession() 描述 在服务器中获取会话,参数如果为true,则当不存在会话时新建会话,参数如果为false,则当不存在会话返回null
getSession()
描述 在服务器中获取会话,参数如果为true,则当不存在会话时新建会话,参数如果为false,则当不存在会话返回null
HttpServletResponse 类中的相关方法
方法 void addCookie(Cookie cookie) 描述 把指定的cookie添加到响应中
HttpSession 类中的相关方法
一个HttpSession对象里面包含多个键值对。我们可以往HttpSession中存任何我们需要的信息。
方法
Object getAttribute(String name)
该方法返回在该session会话中具有指定名称的对象,如果没有指定名称的对象,则返回null
void setAttribute(String
name, Object value)
该方法使用的指定的名称绑定一个对象到该session
会话
boolean isNew() 判断当前是否新创建的会话
Cookie类的相关方法
每个Cookie对象就是一个键值对 方法 String getName() 该方法返回cookie的名称 名称在创建后不能改变(这个值是Set-Cookie给浏览器的)
String getValue()
该方法获取cookie关联的值
HTTP 的 Cooke 字段中存储的实际上是多组键值对. 每个键值对在 Servlet 中都对应了一个 Cookie
对象.
-
通过 HttpServletRequest.getCookies() 获取到请求中的一系列 Cookie 键值对.
-
通过 HttpServletResponse.addCookie() 可以向响应中添加新的 Cookie 键值对.
cookie的工作流程:
客户端访问服务器,服务器调用response.addCookie()
方法,产生响应时,会产生set-cookie响应头,将cookie文本发送给客户端,客户端会将cookie文本保存起来,当客户端再次请求服务器时,会产生cookie
请求头,将之前服务器发送的cookie
信息,再发送给服务器,服务器就可以根据cookie信息跟踪客户端的状态。