1 原理:服务端利用一种散列表的结构为每个session维护一个会话信息数据,客户端和服务器端依靠一个全局唯一标识sessionid,来访问会话数据信息。
2 创建session的过程:
2.1 服务器端生成session和对应的sessionID,开辟空间进行存储。一般存放在内存中,但有个缺点就是掉电会丢失。电商网站一般写到文件中或者数据库中,实现session的持久化。
2.2 将sessionID传递给客户端,有2种方式cookie和URL重写。
2.2.1 cookie的方式传递sessionid:
在响应报文的响应头的set-cookie中设置sessionid传送到客户端,后续客户端向服务器端发送请求报文都会带上这个sessionid。由于cookie有失效时间,所以session也跟着失效,客户端拿不到这个sessionid。此时如果没有程序通知服务器删除session,这个session会一直保留。(一般当用户log off时,服务器端才会删除session)
2.2.2 重写URL,有2种方式进行重写。作为GET参数的方式加上sessionid,或者作为URL路径的附加信息。
'''
get参数:http://www.xxxx?sessionid=yyy
url路径附加:http://www.xxxx;sessionid=yyy
'''
网友评论