cookie 与 session 详解与区别

会话(session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
 
基本原理:
    由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份。
 
cookie特点:
  • cookie的不可跨域名性
  • unicode编码,保存中文
  • cookie的所有属性:         
string name
该cookie的名称
object value
该cookie的值
 int maxAge
该cookie失效的时间,单位为秒,如果为正数,表示maxAge秒后失效。
如果为负数,表示为临时cookie,为0,表示删除cookie
boolean secure
表示cookie是否使用https,SSL安全协议传输
string path 表示可以访问该cookie的路径
string domain 可以访问该cookie的域名
string comment 该cookie的用处说明
int version cookie使用的版本
  • 对cookie执行修改和删除操作,只能通过创建一个同名的cookie,name,path,domain都一样,而maxAge和value不同的cookie来覆盖原来的cookie。
  • 要是同一个一级域名下的二级域名都可以使用该cookie,需要设置cookie的domain参数。
二、session机制
      session是服务器端使用的一种记录客户端状态的机制,使用上比cookie简单,但相应的增加了服务器的存储压力。
      cookie机制是通过检查客户身上的通行证来确定客户身份的话,那么session机制是通过检查服务器上的客户明细表来确定客户身份。Seesion相当于程序在服务器上建立的一份客户档案,客户来访的时候只需查询客户档案表就可以了。
    在使用session保存客户状态信息时,需要客户端cookie作为识别标志。当在服务器端创建一个新session时,会自动创建一个名为JSESSIONID的cookie,值为session id,session依据该id来识别是否为同一用户。
  注:如果客户端禁用了cookie或不支持时,这时就要采取url地址重写机制。
posted @ 2013-09-06 11:36  嘻哈披头士  阅读(146)  评论(0)    收藏  举报