【一】浏览器保存状态
【1】http请求的特点
# 1.无状态
每一次的http请求,浏览器都不会保存当时的状态,如用户的登录
# 2.无连接
每个http请求都是一次独立的交互,无连接也可以称为短链接,因为只有发送请求以及得到响应的那么一刻时间服务端和浏览器会有连接,他的连接生命周期非常短暂
# 3.基于请求响应
http协议是基于浏览器发送请求,客户端响应数据这一种模式的
# 4.是基于应用层的协议
是基于tcp/ip的协议
【2】保存状态的方法
- 因为http无状态这一个特点,浏览器无法满足一些网站的功能,如需要用户登录之后才能渲染的页面,因此推出了一下几种方法
- Cookie,Session,Token
【二】保存状态的方法
【1】Cookie
- cookie是有服务器生成,发送给浏览器,保存在浏览器的一堆kv键值对
- cookie的组成有:名称,值,有效域、路径、失效时间、安全标志
- 比如当用户在输入用户名密码进行登录的时候,浏览器发送请求,服务器响应数据中会包含一个
set_cookies
的数据,浏览器就可以保存下来这些数据,下次发送请求就会带上这些数据,服务器就能认识这些数据,并且响应对应的内容
一个cookie的设置以及发送过程分为以下步骤
- 浏览器发送一个http请求到服务器
- 服务器生成一个
set_cookies
打包到response数据里面发给浏览器 - 浏览器识别
cookies
并且将其保存到本地 - 下一次发送http请求就会携带
cookies
数据 - 浏览器识别cookie并且响应对应的数据
【2】session
- session的意思是绘画。客户端于服务器的一次请求就会产生一个session,服务器使用session将用户的信息保存在服务端。这将要比cookie保存在浏览器作为标识安全一些
seesion的设置以及发送过程分为以下步骤
- 浏览器发送一个http请求到服务器
- 服务端创建一个唯一的
Session ID
,并将其于 用户相关联,最后将其打包到response数据发给浏览器 - 浏览器将
Session ID
保存在cookie里面 - 浏览器发送请求,并且把Session ID也发过去
- 浏览器解析Session ID,找到唯一对应的用户,响应相应的内容