cookie和session的联系与区别

  • Cookie

       当你在浏览网站时,WEB服务器会先送一小小的资料放在你的计算机上,Cookie会帮你在网站上所打的文字或是一些选择都记录下来。当你下次再光临同一个网站时,WEB服务器会先看看有没有它上次留下的Cookie资料。如果有的话,就会依据Cookie里的内容来辨认使用者,以便送出为使用者量身定做的内容。

       正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照一定的原则在后台自动发送给服务器。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie负载请求资源的HTTP请求头上发送给服务器。

      cookie若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。cookie若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享。

 

  • Session

        session是一种服务器端的机制,服务器使用一种类似散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求是否包含一个session标识(session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用;如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,这个session id将在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie。但是cookie可以被人为禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。

 

  • Session和Cookie的区别
  1. cookie数据存放在客户的浏览器上,而session数据放在服务器上;
  2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie;
  4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

posted on 2017-03-22 13:21  一个不会coding的girl  阅读(179)  评论(0编辑  收藏  举报

导航