我当时看这个协议是因为我学习cookie和session,引出了http和HTTPS协议我有文章会将
Cookie是什么
Cookie是为了辨别用户身份,进行会话跟踪,存储在客户端的数据
为什么要使用cookie?
HTTP协议是无状态的,对于事务处理没有记忆能力,服务器无法但从网络连接区分用户身份,cookie就类似于通行证,使用cookie后可以判断是当前用户是那个,来辨认用户状态。
Cookie的缺点:
CooKie只能保存少量数据(大约4k)
Cookie 只能保存字符串
Cookie可以被用户禁止
Cookie数据都在客户端,一旦被劫持信息会泄露,因为数据在客户端,服务器端无法验证,更容易伪造
安全性问题
1、 设置httponly防止跨站脚本攻击
2、 在HTTPS中设置secure加true使用,secure属性并不能对cookie内容加密,如果需要高安全性需要在程序中对cookie内容加密解密
Seeion是什么?
session是服务器端为了辨别客户端身份,进行会话跟踪,会在内存里开辟一快内存,这块内存就是session
session原理是什么?
当客户端访问服务器的时候,服务器会判断是否有相应的sessionid对应的session,如果没有session,会发送给客户端一个特有的sessionid,这个id的值是一个既不会重复,又不容易找到规律以仿造的字符串,服务器会发送一个session到客户端,同时服务器也会把sessionid和对应的信息,操作记录放到session里,客户端再次访问时通过sessionid找在服务器找到对应session的信息
Session的两种实现方式,
- List item
第一种是通过cookie实现:
第二种通过URL重写实现:当客户端不支持cookie是,将该用户的sessionid重写到URL地址值,服务器会解析sessionid
Session缺点:
占用服务器资源
Session存储大小数量没有限制
安全性问题:预防session被劫持
- sessionID的值只允许cookie设置,而不是通过URL重置方式,同时cookie的httponly为TRUE
- 在每个请求里面加上token,每次验证这个token,从而保证用户的请求都是唯一性
- 间隔生成新的sessionid