一、释义:是对HTTP协议无状态特点的补偿
场景:客户端多次发送网络请求,HTTP无状态的特点导致服务端无法知道是否是同一个用户
Cookie:
1、什么是CooKie: 主要是用来记录用户状态,区分用户;CooKie的状态是保存在客户端的
2、CooKie在客户端与服务端是如何运作的: 客户端向服务端发送请求,服务端会生成一个cookie,通过返回报文返回给客户端,客户端会保存下来。
- 客户端发送cookie在http请求报文的Cookie首部字段中
- 服务器端设置http响应报文的Set-Cookie首部字段
3、如何修改CooKie呢?
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domin等需要与原cookie一致,就是键值对的Key
4、如何删除CooKie呢?
- 新cookie覆盖旧cookie
- 覆盖规则:name、path、domin等需要与原cookie一致,就是键值对的Key
- 设置cookie的expires=过去的一个时间点,或者maxAge = 0
4、如何保证CooKie的安全呢?
- 对cookie进行加密处理
- 只在https上携带Cookie
- 设置Cookie为httpOnly,防止跨站脚本攻击
Session:Session也是用来记录用户状态的,区分用户的;状态存放在服务端
Session工作流程
11、客户端发送一个http请求报文,服务端收到请求报文之后,服务端会记录用户状态,同时生成一个SessionID
2、服务端响应客户端,把Cookie和SessionID回传给客户端
3、后续客户端在请求的时候把Cookie和SessionID带上
4、服务端就可以通过SessionID来识别用户
Session/Cookie的区别
- Session 在服务端存放 Cookie在客户端存放
- Session需要依赖Cookie来完成
网友评论