现在的位置: 首页 > 综合 > 正文

12-1-23进步一小点

2018年01月11日 ⁄ 综合 ⁄ 共 1747字 ⁄ 字号 评论关闭

1关于cookies

 对于该概念的理解,我们起码得明白http协议其实是一种无连接的,虽然我们在连接的过程中是基于tcp的连接方式,

但是一旦我们通过浏览器获取到服务器的页面内容后,此时我们就与服务中断连接了,针对一种情况,

在有些应用方面cookies就给我们带来了很大方便,比如一些hotmail ,gmail网站,还有一些论坛会提示我们

一旦输入用户名和密码 之后可以保持2-3周不用再次输入,这都是cookies的好处。他存在于我们c盘-documents&&settings中对应用户的目录中

比如我们登陆某网站后,点击了一系列信息,然后进行保存,此时服务器会自动在我们客户端的机子里面写入相应的文本(cookies) 记录我们选择的一些信息,

当我们点击可以查看该信息的另一个网页的时候, 可以看到我们选择的信息,这是因为服务器端会从该cookies读取信息。

这里cookies是以k-v的形式保存 就如同java.util.Map

一般不同的网站保存的在不同的cookies,而且就算同一台主机,开启不同的浏览器的时候,在内部这些浏览器是对应不同的id编号,可以供服务器甄别。

我们可以通过改变internet的选项 设置安全高级属性,完全阻止服务器对我们客户端的写入,这样会导致的后果是我们在登陆该网站的的部分功能无法享用

2 关于cookie的种类,一般我们new出新的cookie后,会考虑是否设置其生命期setMaxAge()这里的单位为sec,如果是-1表示一旦browser关闭,cookie就消失

如果是其他秒数,自会以文本的形式写入到硬盘中,存活特定的时间,其他的情形一律只是临时保存在内存中,算是该窗口独享的cookie,其他browser是无法获取该cookie值的

3在说说关于读取客户端cookies路径问题,我们这里的路径为url路径,不是文件系统下面的实实在在的确切路径

对于一个servlet/jsp设置的cookies可以被同一路径下面或者路径下面的servlet/jsp读取到,但是绝对不能跃上读取

例子:http://localhost/my//ibm 

  http://localhost/my/Servlet/hp 下面的就可以访问上面设置的的cookies

4关于Session

他与cookies有着类似功能,只是他存在于服务器端,当我们浏览器 访问了一个网站的时候,对于上一页,对于再访问下一页,此时服务器是如何还晓得上一页我保存的相关信息,对于这样一些列的问题,session具备解决该问题的能力

当客户端访问服务器的时候,服务器会开辟一块内存(session), 并给该session置一个编号,就是session-id,此时我们开启的浏览器的编号也是该session-id,当我们该浏览器再次访问的时候,匹配id,使得该浏览器访问seesion里面的内容,这样对于上一页 下一页的网页内容的相关信息都能准确无误的保存下来。对于在服务器端的session是有生命期的,一般在我们config中配置,当然如果自己也对可以在webapps设置我们自己的webapplication,的session生命期 ,里面的数字是单位是分钟

这里有个最常见的应用,就是当我们在登陆一些邮件界面或者网银的时候,如果我们在这个页面长时间停留,等到我们提交的时候,他会提示您的页面过期,这里就是sesion被回收了,原因是当我们访问该页面时候,开辟了session,他会再内存中停留一定时间,这样当我们提交的时候,根据session里面的内容我们知道下一页的内容如何显示,一旦session过期,我们是无法知晓登陆界面的内容了。

这样session的实现方式的突破口是id,一是通过cookie实现,在客户端允许cookie的情况下,cookie里面会保存下该seesion-id,这样当我们连接的时候仍可访问相关session

二是通过重写url,即会再url后面跟上sessionid

在session里面的名-值对 名的类型为String

总结,session里面不存在cookie的路径问题,只要在同一个webapplication目录下,但是前提是必须是同一窗口,因为ie的编号与该session一一对应的

抱歉!评论已关闭.