51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8115|回复: 15
打印 上一主题 下一主题

Cookie PK Session

[复制链接]
  • TA的每日心情

    2015-9-10 15:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2008-11-25 11:36:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一,Session:含义:有始有终的一系列动作\消息
    1,  隐含了“面向连接” 和“保持状态”两种含义
    2,  一种用来在客户端与服务器之间保持状态的解决方案
    3,  也指这种解决方案的存储结构“把××保存在session里”

    二, http 协议本来是无状态的,所以引进了cookie和session机制来保持连接状态

    cookie与session 机制之间的区别与联系:
    cookie机制采用的是在客户端保持状态的方法
    session机制采用的是在服务器端保持状态的方案,由于在服务器端保  持状态的同时必须要求客户端提供一个标识,

    三,关于cookie机制
    Cookie 的使用是由浏览器按照一定的原则在后台自动发送给服务器的,浏览器会检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的http请求头上发送给服务器。
    存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而保存在内存里的cookie,不同的浏览器有不同的处理方式,对于IE,在一个打开的窗口上按CTRL+ N(从文件菜单)打开的窗口可以与原窗口共享cookie,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie。
    Cookie的内容包括: 名字,值,过期时间,路径和域

    四,关于session的机制
        当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个请求是否含了一个session 标识(session id),如果有,则说明以前为该客户创建了一个session,服务器就按照session id把这个session检索出来用,一般一个cookie的名字就是类似于session ID,如果cookie被禁止的时候(cookie可以被人为的禁止),经常使用重写URL的方式,把session ID附加在URL路径后面,为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。
        人们以为:“把浏览器关闭了,session 就小时了”其实不对,除非程序通知服务器删除一个session,否则服务器会一直保留,而程序一般都是在用户作log off的时候发个指令去删除session。人们之所以会产生这种错觉,是因为大部分session会采用cookie来保存session,而关闭浏览器后这个session就消失了,如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的http请求头,把原来的session id发送给服务器,则再次打开浏览器,其实是可以再次找到之前的session id的。所以设置失效时间可以起到一定的保护作用。

    五,关于session的一些问题
    1,  session何时被创建: 不是在客户端访问时就被创建,而是在服务器端调用httpservletRequest.getSession(true)时才被创建。
    2,  session何时被删除:  A,程序调用httpSession.invalidate(),B距离上一次收到客户端发送的session id时间间隔超过了session的超时设置 C,  服务器进程被停止(非持久session)
    3,  如何做到关闭浏览器同时关闭session:  严格说做不到,可以让所有的客户端页面使用window.onclose来监视浏览器的关闭东西,然后向服务器发送一个请求来删除session,但是对于浏览器崩溃或者强行杀死进程时仍然无能为力。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-12-5 10:26:31 | 只看该作者
    帖子不错,顶顶
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2008-12-9 17:07:54 | 只看该作者
    学习了~~谢谢!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-1-18 15:44:09 | 只看该作者
    只知道session是保存在服务器端的,cookie是保存在客户端的,这次长了见识
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-1-18 17:16:46 | 只看该作者
    好贴
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-6-1 11:03:11 | 只看该作者
    长见识啦!谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-6-11 17:08:10 | 只看该作者
    很不错的帖子了!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-6-25 11:04:31 | 只看该作者
    不错的帖子,顶下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2011-1-8 17:25:11 | 只看该作者
    学习了。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2011-10-24 21:58:37 | 只看该作者
    真不错啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2011-10-25 08:57:43 | 只看该作者
    终于明白了 cookies 和session的区别了 呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-11-3 17:44:53 | 只看该作者
    很深入呢,不过我没好好看,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2012-3-27 17:33:31 | 只看该作者
    好文章。受益匪浅
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2012-3-31 20:22:46 | 只看该作者
    学习了,以前一直对这个比较陌生
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2012-5-14 12:44:45 | 只看该作者
    好文章,我也顶一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2012-9-4 17:11:25 | 只看该作者
    好贴 顶一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 11:25 , Processed in 0.090253 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表