HTTP协议详解文章
HTTP协议详解(三)
一.通过Session来保存状态信息
Session机制是一种服务器的机制,服务器使用一种类似散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先会检查这个客户端是否已经包含一个session标识,称为session id。如果已经包含一个session id,则说明以前已经为此客户端创建过session,服务器就按照这个session id把这个session 检索出来使用。
如果客户端请求不包行session id,则为此客户端创建一个session并且生成一个与此session 相关的session id。
Session实现方式:
1.使用cookie来实现
服务器给每个session分配唯一一个JSESSIONID,并通过Cookie发送给客户端。当客户端发起新的请求的时候,将在cookie头中携带这个JSESSIONID,这样服务器就能够找到这个客户端对应的Session。
2.使用URL回写来实现
URL回写指在服务器发送给浏览器页面的所有链接中都携带JSESSIONID的参数,这样客户端点击任何一个链接都会把JSESSIONID带回服务器。
二.Session与Cookie的区别
1.Cookie将状态保存在客户端,Session将状态保存在服务器。
2.Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送给同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户端浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一个服务器的任何请求缚上这些cookies。
3.Cookie是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量,这个值是通过用户的浏览器在访问的时候会返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器。
4.就安全性来说,访问一个使用session的站点,同时在自己机子上建立一个cookie,建议在服务器的session机制更安全些,因为它不会任意读取客户存储的信息。