单机环境下利用Session解决HTTP无状态
http协议特性
HTTP是一个属于应用层的面向对象的协议,HTTP协议一共有五大特点:
1、 支持客户/服务器模式
2、简单快速
客户端向服务端请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户端与服务端联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3、灵活
HTTP允许传输任意类型的数据对象。正在传输的类型由:Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。
4、无连接
无连接的含义就是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,即断开连接。采用这种方式可以节省传输时间。
5、无状态
HTTP协议是无状态协议。无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,这它必须重传,这样可能导致每次连接传送的数据量增大。另一面,在服务器不需要先前信息时它的应答就比较快
解决示意图
解释:
1、
客户端
在访问login.html
时server
端会创建一个sessionId(create sessionId)
2、server
端的cookie
会将这个sessionId
写进cookie(set-cookie SESSIONID)
3、当客户端
再次访问server时
,也就是访问/product.html(/product.html SESSIONID)
的时候它会携带这个SESSIONID
到server
4、server
端会去匹配这个sessionId(match sessionid)
看是否可以匹配上,匹配上返回相应信息。