标签:http 请求 token session cookie sid 服务端 客户端
如何完成 HTTP 协议的状态管理呢? 有3种常见的解决方案:
1. cookie
1. 客户端发送第一次请求, 服务端接收请求, 处理请求.
2. 服务端在响应数据包中携带 cookie 信息一起返回给客户端.
3. 客户端接收响应, 解析得到 cookie , 保存在客户端本地.
4. 客户端发送后续请求时, 在请求数据包中携带 cookie 信息一起发送, 这样服务端就可以解析到以前存过
的数据, 完成 http 状态管理.
2. token
1. 客户端发送第一个请求, 服务端接收请求, 处理请求.
2. 当服务端需要把一些敏感数据(用户信息等)传给客户端时(需要让客户端下次访问服务的时候带回来), 这
些敏感数据不可以明文传输(容易被篡改). 所以服务端可以使用 JWT(JSON Web Token) 的方式来对这些
数据进行加密(生成 token 字符串), 最后传输给客户端即可.
3. 客户端接收到加密的 token 字符串后, 存起来( localStorage 中)
4. 当下次发送请求时, 从 localStorage 中获取 token 字符串, 将该字符 串传给服务端. 服务端接收
token , 通过相同的秘钥将数据解析出来, 完成 HTTP 状态管理
3. session
由于 cookie 不安全, 所以可以使用session机制将敏感数据在服务端存储.流程如下:
1. 客户端发送第一次请求, 服务端接收请求, 处理请求.
2. 服务端将会为这个客户端分配一个 sid 与一个 session 对象(存储数据用).
服务端将会在返回响应数据时, 将 sid 以 cookie 的形式带给客户端.
3. 客户端接收到响应数据后, 将会自动存储 cookie . sid 就会被存在客户端.下次发送请求时, 浏览器将会
自动把 sid 带着一起发请求.
4. 服务端接收到请求中的 sid 后, 寻找 sid 所对应的 session 对象, 从而获取上次请求存储的数据, 完成
http 的状态管理.
标签:http,请求,token,session,cookie,sid,服务端,客户端 来源: https://blog.csdn.net/weixin_45137175/article/details/121645707
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。