Cookie
http协议是无状态协议,缺少状态使得后续处理需要前面的信息时必须重传,导致每次连接传送的数据量增大
保持http连接状态的两种技术:Cookie和Session
Cookie将数据存储在客户端,并显示永久的数据存储
Session将数据存储在服务器端,保证数据在程序的单次访问中持续有效
cookie和session的工作原理
共同点:cookie和session都是用来跟踪浏览器用户身份的会话方式
cookie常用于识别用户,cookie是服务器留在用户计算机中的小文件,每当相同的计算机通过浏览器请求页面时,它同时会发送cookie
cookie工作原理:
- 浏览器端第一次发送请求到服务器端
- 服务器端创建cookie,该cookie中包含用户信息,然后该cookie发送到浏览器端
(通过创建cookie:setcookie(名称,cookie值,到期日,路径,域名,secure),必须位于html标签之前,如果用户没有设置cookie的到期时间,则在关闭浏览器时会自动删除cookie数据) - 浏览器再次访问服务器端时会携带服务器端创建的cookie
- 服务器端通过cookie中携带的数据区分不同的用户
cookie的应用:
1.页面之间传递变量,浏览器不会保存当前页面上的任何变量信息,如果页面被关闭,那么页面上的所有变量信息也会消失,通过cookie可以把变量保存下来,然后另外的页面可以重新读取这个值
2.记录访客的一些信息,利用cookie可以记录客户曾经输入的信息或者记录访问页面的次数
3.把所查看的页面保存在cookie临时文件夹中,可以提高以后的浏览速度
session的工作原理:
1.浏览器第一次发送请求到服务器端,服务器端创建一个session,每一个session会有一个ID,这个SessionID通过Cookie存储在客户端浏览器中,或者通过URL传递到客户端
2.浏览器端发送第N次请求到服务器端,浏览器端访问服务器端时就会携带该SessionID的Cookie对象
3.服务器端根据SessionID打开相对应的Session变量,查询到对应的Session对象,从而区别不同用户,有就使用,无就创建