直面session

前言:

      平时开发中用浏览器打开一个网页,用到Http协议(特性是无状态,即本次请求和上次请求无关,优势就是快)

      如果希望多个请求的页面相互关联,比如我在login.jsp里面登录了,同样的在index.jsp也处于登录状态;这是两个不同的页面,也就意味着两个不同的http请求,也就意味着没什么关联,无法在index.jsp页面中读取到在login.jsp同样登录;

解决方案:客户端存储数据的方式出现:cookie

                 优势:cookie是把少量的信息存储在用户自己的电脑上,在同一个域名下是全局的,只需设置它的存储路径在域名下

                 弊端:cookie是存在客户端,本身存储大小有限,并且用户是可见的,可以随意修改,不安全!

解决方案:session诞生

                 session也是解决不同请求无法关联的问题

                 优势:session信息存储在服务端,session是用session_id来绑定一个用户,只有当网页关闭时,session过期。

                           每次我们访问一个页面,如果有开启session,也就是有session_start() 时,就会自动生成一个session_id 来标注是这次会话的唯一ID,同时也会自动往cookie里写入一个名字为SESSID的变量,它的值正是session_id,当这次会话没结束,再次访问的时候,服务器会去读取这SESSID的cookie是否有值有没过期,如果能够读取到,则继续用这个session_id,如果没有,就会新生成一个session_id,同时生成SESSID这个cookie。由于默认生成的这个SESSID cookie是会话,也就是说关闭浏览器就会过期掉,所以,下次重新浏览时,会重新生成一个session_id。


               


猜你喜欢

转载自blog.csdn.net/perry1230/article/details/80349717