`
jinliang0324
  • 浏览: 3485 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

对cookie的一些认识

阅读更多
    cookie是一小段文本信息,将数据保存在客户端,设计初衷是为了弥补http协议无状态的不足。客户端请求服务器时,如果服务器需要记录该用户的状态,就使用response向客户端颁发一个cookie,客户端会把cookie保存起来。当浏览器再次访问该网站时,浏览器会把请求的网址连同该cookie一起提交给服务器。我用一个简单的servlet工程对上述定义进行验证时发现,当一个前台jsp页向后台servlet类提交请求时,类中有代码Cookie[] co=request.getCookies(),而此时的co长度为1,也就是说存在一个cookie,显示的cookie的name是jsessionid(jsessionid只是tomcat中对session id的叫法,在其它容器里面,不一定就是叫jsessionid了),值是一个很长的无规则字符串,但类中并没有创建cookie的语句,为什么会出现cookie呢?这是因为这个cookie是session cookie,当你访问web时,服务端都会为你开壁一块内存区间,用以存放你这次会话的一些内容,可以理解为session,那么就需要一个东西来标志这个内存区间是你的而不是别人的,这个东西就是session id,也就是jsessionid的值,和在类中创建一个httpsession并取出这个session的id的值是一样的。只要你浏览器没有关闭,你每向服务器发请求,服务器就会从你发送过来的cookies中拿出这个session id,然后根据这个session id到相应的内存中取你之前存放的数据。但是,如果你退出登陆了,服务器会清掉属于你的内存区域,所以你再登的话,会产生一个新的session了。注意的是这个保存jsessionid的cookie是存在浏览器的内存中,而不是本地硬盘内。
     persistent cookies,就是可以保存在硬盘里的cookie(设置了一定有效期限),在C:\Documents and Settings\你的用户名\Local Settings\Temporary Internet Files(Internet选项-设置-查看文件)和C:\Documents and Settings\你的用户名\Cookies中。cookie的属性和方法可以参见cookie的API,在这想分析下path和domain属性。Cookie本身是不可跨域名的,如果想让所有xxx.com名下的二级域名都可以使用改cookie,就需要设置domain参数,cookie.setDomain(“.xxx.com”)。path属性决定允许访问cookie的路径(ContextPath),设置为”/”时允许所有路径使用cookie,属性需要使用符号”/”结尾,如:”/session/”,注意的是页面只能获取它属于的path的cookie,例如/session/test/a.jsp不能获取路径为/session/abc/的cookie。
    如果要修改cookie,只需新建一个同名的cookie,并添加到response中,将maxAge设置为0表示删除cookie。注意修改或删除时新建的cookie除了value和maxAge外其他属性都要一样。
    并非全部原创,借鉴了其他人总结
分享到:
评论

相关推荐

    cookie实现的购物车

    cookie实现的购物车 帮助你认识COOKIE的强大

    认识并了解Cookie

    简单介绍的Cookie的定义,历史,原理,应用场景及优缺点。 (注:原理图是我在网上找的资料:https://zhuanlan.zhihu.com/p/74042200)

    细说Cookie

    Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态,所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述...

    Cookie与Session的介绍即使用————Cookie

    原理: 用户通过浏览器访问web服务器时,服务器会给客户端发一些信息,这些信息保存在Cookie中,当浏览器在次访问服务器时,就会在请求头中将Cookie发送给服务器,方便服务器对浏览器做出正确的响应。 注意:Cookie...

    HTML5 Web缓存和运用程序缓存(cookie,session)

    在介绍HTML5 web缓存前,来认识一下cookie和session: session: 由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。 因此session(会话)出现了,它会在服务器上存储用户信息以便将来使用(比如...

    常见的浏览器存储方式(cookie、localStorage、sessionStorage)

    Cookie诞生之初的作用就是解决HTTP的无状态请求,用来记录一些用户相关的一些状态。 •会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) •个性化设置(如用户自定义设置、主题等) •浏览器...

    Web 常见面试题

    该文档整理了web常见面试题,包括一下内容: 1. 谈谈你对http协议的理解,http 常见的状态码有哪些 2. GET 和 POST 的区别(4个) ...4. Cookie 和 Session
区别 5. 什么是 jsp,什么是 ...8. 谈谈你对 ajax 的认识?

    关于单点登录 sso的思路

    由于对cookie的认识不足,查了很多资料,也测试了好多次,我自己没有办法读取到使用setDomain(String s)修改过domain的cookie,以至于我自己也不确定是否已经改动。早上醒来,回忆昨天我们的单点登录模型,突然...

    商品对比功能,美观、实用,加入对比JS代码.rar

    在一些商城、手机或其它硬件资讯网站,可以经常见到商品对比功能,用户只需选中想要对比的产品,在确认对比后,网页将显示用户所选择的几款商品的详细硬件参数的对比,这样便于用户对产品的异同做出初步的认识。...

    认识并使用PHP超级全局变量

    认识并使用PHP超级全局变量 超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。它的类型包括: $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键...

    WEB前端黑客技术揭秘.pdf

    Web前端的黑客攻防技术是一门...本书适合前端工程师阅读,同时也适合对Web前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中的内容可以让读者重新认识到Web的危险,并知道该如何去保护自己以免受黑客的攻击。

    Web前端黑客技术解密

    Web前端的黑客攻防技术是一门...本书适合前端工程师阅读,同时也适合对Web前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中的内容可以让读者重新认识到Web的危险,并知道该如何去保护自己以免受黑客的攻击。

    web前端黑客技术揭秘

    Web前端的黑客攻防技术是一门...本书适合前端工程师阅读,同时也适合对Web前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中的内容可以让读者重新认识到Web的危险,并知道该如何去保护自己以免受黑客的攻击。

    WebQian Duan Hei Ke Ji Zhu Jie Mi - Zhong Chen Ming , Xu Shao Pei.mobi

    Web前端的黑客攻防技术是一门...本书适合前端工程师阅读,同时也适合对Web前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中的内容可以让读者重新认识到Web的危险,并知道该如何去保护自己以免受黑客的攻击。

    Web前端黑客技术揭秘

     《安全技术大系:web 前端黑客技术揭秘》适合前端工程师阅读,同时也适合对 web 前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中的内容可以让读者重新认识到web 的危险,并知道该如何去保护自己以免受黑客...

    JavaScript商品对比功能JS代码

    在一些商城、手机或其它硬件资讯网站,可以经常见到商品对比功能,用户只需选中想要对比的产品,在确认对比后,网页将显示用户所选择的几款商品的详细硬件参数的对比,这样便于用户对产品的异同做出初步的认识。...

    简化Python的Django框架代码的一些示例

    尽管Django的流行和普及, 一些开发者仍然认为她是一个过时的web开发框架, 仅仅适合内容丰富的web程序。 然而现在大多数web程序往往不是富内容的, 这似乎让Django看起来不是最佳选择的web框架。 那么让我们花点...

    Meta标签详解

    meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC...

    【最新版】arc-15.0.5.dmg【亲测可用】最好的高级REST客户端

    认识高级REST客户端高级REST客户端允许您测试API。简单易用的用户界面可帮助您专注于API而不是工具。将您的请求和项目存储在Google云端硬盘上,并与您的团队共享。使用Anypoint Exchange连接到企业API,在请求之前和...

Global site tag (gtag.js) - Google Analytics