(一)cookie和seesion的工做原理

Cookie和会话状态的 工做 原理及Cookie欺骗    浏览器

session是一种保存上下文信息的机制,它是针对每个用户的,变量的值保存在服务器端,经过SessionID来区分不一样的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(一般所说的Cookie).Session Cookie是存储在浏览器中,并非写在硬盘上的,可是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就能够在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。

一般Session Cookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时能够把SessionID保存在Persistent Cookie中,而后再新的窗口中读出来,就能够获得上一个窗口的SessionID了,这样经过Session Cookie和Persistent Cookie的结合,实现了跨窗口的会话跟踪。 服务器

session的工做原理
就session的实现而言,好像是这样的:
(1)当有Session启动时,服务器生成一个惟一值,称为SessionID(好像是经过取进程ID的方式取得的)。
(2)而后,服务器开辟一块内存,对应于该SessionID。
(3)服务器再将该SessionID写入浏览器的cookie(一些在网页的源代码中有所体现)。
(4)服务器内有一进程,监视全部Session的活动情况,若是有Session超时或是主动关闭,服务器就释放该内存块。
(5)当浏览器连入IIS(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器)就读浏览器Cookie中的SessionID。
(6)而后,服务检查该SessionID所对应的内存是否有效。
(7)若是有效,就读出内存中的值。
(8)若是无效,就创建新的Session。 cookie

注意:
(1)在大浏览量的网站,Session并不保险,咱们过去的网站就常常碰到存在Session中得值不正确(可能出现重复的Session ID)。
(2)Session ID不能从硬盘上的Cookie文件得到,若是想在客户端获知本身的Session ID,只能经过Javascrīpt来读取。 session

Cookie和会话状态
作BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深刻,深刻看参考地址!
什么是 Cookie?
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序均可以读取 Cookie 包含的信息。 Cookie 的基本工做原理若是用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。若是该 Cookie 存在,浏览器就将它与页面请求一块儿发送到您的站点。 网站

Cookie 有哪些用途?
最根本的用途是:Cookie 可以帮助 Web 站点保存有关访问者的信息。更归纳地说,Cookie 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您. 编码

什么是会话Session?
当用户访问您的站点时,服务器会为该用户建立惟一的会话,会话将一直延续到用户访问结束。 spa

相关文章
相关标签/搜索