`
leaf-stop
  • 浏览: 26596 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Web使用中会话,会话跟踪,Cookie,Session的相关知识

    博客分类:
  • html
阅读更多
在Web开发中,我们必须掌握会话,会话跟踪,Cookie与Session的含义,下面将介绍一些它们的知识点:
1.会话
        会话就是你通过浏览器与服务器之间的一次通话,会话是用来识别用户的,一旦你关闭了浏览器,虽然会话没有结束,但是你重新打开浏览器时,已经不能再次利用上一次的会话了,它会新建一个新的会话。
       客户端向服务端发送一个请求,服务端接收到请求后,生成会话ID(sessionID),把会话ID发送给客户端,客户端接收到这个会话ID,把它存储起来,下一次发送请求的时候,附带着这个会话ID一起发送给服务端。会话ID是会话的唯一标识符,一个会话ID只会对应一个会话,就像身份证号码只对应一个人一样。

2.会话跟踪
        当用户在同一网站的多个页面之间转换时,无法确定是否是同一个客户时,会话跟踪技术就可以解决这个问题。

3.四种会话跟踪技术:
隐藏表单域、 URL重写 、 Cookie、Session。
1).隐藏表单域:<input type="hidden">,适合需要大量数据存储的会话应用。

2).URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。
url?参数名=值&参数名=值

3).Cookie: Cookie是Web服务器发送给客户端的一小段信息,客户端请求时可以读取该信息发送到服务器端,进而进行用户的识别。对于客户端的每次请求,服务器都会将Cookie发送到客户端,在客户端可以进行保存,以便下次使用。
客户端可以采用两种方式来保存这个Cookie对象,一种方式是 保存在 客户端内存中,称为临时Cookie,浏览器关闭后 这个Cookie对象将消失。
另外一种方式是设置Cookie存在时间,保存在 客户机的磁盘上,称为永久Cookie。以后客户端只要访问该网站,就会将这个Cookie再次发送到服务器上,前提是 这个Cookie在有效期内。 这样就实现了对客户的跟踪。
Cookie是可以被禁止的。

4).Session:每一个用户都有一个不同的session,各个用户之间是不能共享的,是每个用户所独享的,在session中可以存放信息。
在服务器端会创建一个session对象,产生一个sessionID来标识这个session对象,然后将这个sessionID放入到Cookie中发送到客户端,下一次访问时,sessionID会发送到服务器,在服务器端进行识别不同的用户 。
使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话。

4.Cookie 和Session 的区别:
1)、 Cookie 数据存放在客户的浏览器上, Session 数据放在服务器上。

2)、 Cookie 不是很安全,别人可以分析存放在本地的Cookie并进行 Cookie 欺骗,
   考虑到安全应当使用 Session 。

3)、 Session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 Cookie 。

4)、单个 Cookie 保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个 Cookie 。

        所以,我们应将登陆信息等重要信息存放为Session,其他信息如果需要保留,可以放在 Cookie 中。
1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics