HTTP
1、无状态的HTTP
HTTP协议是一种无状态的协议
(无状态:指的是 当网页一旦关闭,服务端和浏览器端的连接就会断开,下一次打开网页需要重新连接,从打开的连接无法回到上一次的会话)
cookie
cookie的建立过程:
1、 浏览器发送一个HTTP请求到服务器端
2、 服务器端通过HTTP response向客户端发送一个cookie,客户端会把cookie保存下来(如用户信息和用户操作信息)
3、 下一次访问网站时,浏览器发送HTTP请求给服务器端会携带之前保存的cookie
4、 服务器端从收到的cookie中识别用户身份
例如:
在网站的登录界面上有“记住我”这个选项,勾选以后,浏览器就会将个人信息保存在cookie中,下次再访问这个网站时,服务器端根据收到的cookie识别出用户,然后自动登录。
(使用场景:1、登录记住用户名和密码 2、记录用户浏览记录)
cookie的缺点:
1、cookie存储的数量和字符数量都有限制,只能存储几十个,大小不超过4k
2、安全性不高,存储在客户端,对外是可见的。
session
session的建立过程
1、 浏览器发送一个HTTP请求到服务器端
2、 服务器端会创建一个session和一个session ID (服务器将对应的session ID和用户信息,用户操作记录保存在服务器端,这些记录就是session),并把session ID通过HTTP响应发送到浏览器
3、 当浏览器再次访问时,发会送cookie给服务器端(包括session ID)
4、 服务器从cookie中查到session ID,再根据session ID查找session,即可查到之前记录的用户信息
session的特点
1、 安全性高
2、 对服务器的存储压力大,因为服务器端可能要存储千百万用户的信息,所以对服务器的存储压力很大
session和cookie的区别
1、 cookie数据存放在客户端,session数据存放在服务器端
2、 cookie安全性低,存在客户端是对外可见的; session安全性高
3、 单个cookie存放的数据不超过4k,对保存的数量也有限制
4、 session会在一定时间内保存在服务器上,访问量大时,服务器的存储压力大,会占用服务器性能