网站的session机制是什么
当客户端浏览器访问服务器时,服务器以一种形式将客户端信息记录在服务器上,这就是会话。当客户端浏览器再次访问时,它只需要从会话中查找客户端的状态。会话相当于服务器上程序创建的用户配置文件。当用户访问时,他只需要查询用户简档表。会话的生命周期和有效期为了获得更高的访问速度,服务器通常将会话放在内存中。淄博网站开发公司网站默认首页为默认文档。它是指在访问文件目录时自动定位的文件。例如,在您的主机空间中有许多不同名称的文件,但是如果您想在输入网站地址时默认访问一个名为index.htm的文件,您需要将默认主页设置为index.htm。当然,你也可以根据网站开发所用语言的实际情况设置其他默认主页,比如index.asp或者default.cgi每个用户都会有一个独立的会话。如果会话网站内容过于复杂,可能会导致大量客户访问服务器时内存溢出。Session比cookie方便,但是太多的session存储在服务器内存中,会给服务器带来压力。因此,会议中的信息应尽可能简洁。
当用户第一次访问服务器时,会自动创建会话。会话生成后,只要用户继续访问,服务器就会更新会话的上次访问时间并维护会话。
随着越来越多的用户访问服务器,会话也会越来越多。为了防止内存溢出,服务器将从内存中删除长时间不活动的会话。这是会话的超时时间。如果超时后没有访问服务器,会话将自动过期。会话和cookie虽然会话存储在服务器中,但它的正常运行仍然需要客户端浏览器的支持, 这是因为session需要使用cookie作为识别标志。
HTTP协议是无状态的,session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为SESSIONID的cookie,它的值为该Session的id。Session依据该cookie来识别是否为同一用户。 对于不支持cookie的手机浏览器,有另一种解决方案:URL地址重写。URL地址重写的原理是将该用户session的id信息重写到URL地址中,服务器可以解析重写后的URL获取session的id。这样即使客户端不支持cookie,也可以使用session来记录用户状态。
应用场景 通过session累计用户数据。例如,一个未登录用户访问了京东网站,这个时候京东对其下发了一个 cookie,假设cookie的名字叫做abc,那这条记录就是 abc=001,同时京东的后台也生成了一个 session id, 它的值也为 001, 001 这个客户在 2 点、 3 点、 4 点分别添加了三件商品到购物车,这样后台也记录了 session id 为 001的用户的购物车里面已经有三件商品,并且只要每次客户端 cookie 带上来的值里面包含session id,后台都能够展示相应的数据,如果这个时候,在浏览器里面清空 cookie,cookie 数据消失之后,后台和客户端没有办法建立对应关系,购物车的数据就会失效了。
通过session实现单点登录。一个用户帐号成功登录后,在该次session还未失效之前,不能在其他机器上登录同一个帐号。登录后将用户信息保存到session中,如果此时在另外一台机器上一个相同的帐号请求登录,通过遍历(遍历的意思就是将所有session都查看一遍)Web服务器中所有session并判断其中是否包含同样的用户信息,如果有,在另一台机器上是不能登录该帐号的。