文章目录
引言
- 马上要面试了,总是觉得会被问到对应的cookie、session和token等解决HTTP无状态的一些协议,这里就整理一下。
- 除此之外,心里比较紧张,因为估计是最后一轮技术面,过了这个我秋招算是结束了一半了吧!
- 先别扯这些,继续看吧,不能浪费时间,面试完了,晚上好好整理一下,然后在刷两道题目。
- 参考信息
正文
- HTTP本身是无状态,但是很多应用都是基于状态记录实现的,电子商城要记录用户购买商品数量、视频网站需要记录用户的登录状态和保存用户的浏览记录。
- 主要是通过cookie、session和token解决
Cookie——客户端存储和管理
1、基本介绍
- 提示作用的小纸条
- 是服务器发送到客户端浏览器,并保存在本地的一小块数据,会在浏览器下次向同一服务器再次发送请求时,被携带并发送到服务器上。
- 具体作用
- 身份识别,管理会话事物:告知服务端两个请求是否来自同一个浏览器
- 对网页的个性化设置:用户自定义设置、主题等
- 广告跟踪:第三方收集你访问目标网站的cookie,然后针对性的对你投放广告
2、Cookie的创建交互过程
- 服务端Set-Cookie标记
- 服务端受到客户端的HTTP请求后,在返回的响应中,会添加set-cookie字段
- 其中包含了创建的独特的身份标识数据“key=value”
- 服务端受到客户端的HTTP请求后,在返回的响应中,会添加set-cookie字段
- 客户端保存cookie
- 客户端收到请求之后,会保存下Cookie
- 后续每一次请求,都附加Cookie信息发送给服务器
- 如果更换了浏览器就没有办法再次成功创建链接
3、具体交互过程见下图
4、存在的问题
- 明文传输:
- 容易被劫持攻击
- 跨站伪造请求:利用你的cookie向银行发起转账请求
- 网络负载高
- 每次发送信息都会有额外的流量消耗
- 数量和容量限制