http请求响应模式(客户端服务器)无连接、无状态,为防止每次请求响应完成后需重新连接,故产生cookie与session机制。
cookie:文件格式存储在浏览器上,存储量有限(4KB)。例如:浏览器输入用户名密码保存为cookie。
session:存储在服务器端,无限量,安全
cookie运行原理如下:
(1)客户端向服务器发起http请求
(2)服务器端设置一个创建cookie的指令,响应给客户端
(3)客户端收到服务器响应指令,根据指令在客户端创建一个cookie
(4)下一次请求时,客户端携带这个cookie向服务器发送请求
PS:不同浏览器存储位置不同
session运行原理如下:
(1)客户端向服务器发请求建立通信
(2)服务端根据设置的session创建指令,在服务端创建一个编号为sessionid的文件,里面值为session的具体值
(3)服务端将创建好的sessionid编号响应给客户端,客户端存编号在cookie中
(4)下一次请求时,客户端将这个sessionid携带在请求中发送给服务端,服务端根据sessionid做一些业务判断。
PS:生命周期可设置(未设置的浏览器关闭,sessionid消失)
相同点:
作用:用户身份识别、数据传输、登录控制
都是服务器生成
都是用来存储特定数据的
都有生命周期
区别:
session存服务器、cookie存客户端;
cookie创建指令由服务器设置,session的sessionid需客户端存储
session比cookie安全:cookie用户可见、session不可见