`
xiebh
  • 浏览: 612684 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

cookie学习总结

阅读更多
从以下几个方面总结

  • cookie的概念
  • cookie的使用场景
  • cookie的运行机制
  • cookie的常用操作
  • cookie的共享范围
  • cookie的生命周期


cookie的概念:
cookie是客户端(浏览器)访问服务器时,由服务器发送给客户端的一小段信息,就好象是服务器送给客户端的“点心”。cookie相关的规范是HTTP协议的一部分,它的出现主要是由于HTTP协议的“无状态”特点所决定的。也就是说WEB服务器好比是"超市"售货员,他只管买东西,不关心是客户是谁,进行“不记名”响应请求,这样做主要是为了简单。但在实际web开发中我们又需要跟踪用户,比如网上购物中的“购物车”。因为为了解决该问题,cookie出现了。

cookie的使用场景
  • 在电子商务会话中标识用户
  • 记录用户名/密码
  • 定制网站
  • 定向广告


cookie的运行机制
如图所示

Cookie的运行机制是由HTTP协议规定的,多数Web服务器和浏览器都支持Cookie。Web服务器为了支持Cookie,需要具备以下功能:
在HTTP响应结果中添加Cookie数据
解析HTTP请求中的Cookie数据

浏览器为支持Cookie,需要具备以下功能:
解析HTTP响应结果中的Cookie数据
把Cookie数据保存到本地硬盘
读取本地硬盘上的Cookie数据,把它添加到HTTP请求中


另外,浏览器发送请求时,Cookie信息是在HTTP协议的请求头中的:
HTTP/1.1 200 OK
Server:Apache-Coyote/1.1
[b]Set-cookie:userName=TOM;[/b]
Content-Type:text/plain


cookie常见操作
首先cookie的格式就是名值对,比如 userName = "Tom",所以cookie中只能保存字符串。另外,浏览器中可以保存多个cookie。服务器对Cookie可以进行添加、读取、修改、删除的操作。
添加操作:
Cookie theCookie = new Cookie("userName","TOM");
response.addCookie(theCookie);


读取操作:
Cookie cookies[] = request.getCookies();

for(int i = 0; i < cookies.length; i++){
    out.println("Cookie name:" + cookie[i].getName());
    out.println("Cookie vale:" + cookie[i].getValue());
}


修改操作:
Cookie cookies[] = request.getCookies();

for(int i = 0; i < cookies.length; i++){
    if(cookie[i].getName().equals("TOM"))
       cookie[i].setValue("JACK");   
}



cookie的生命周期
Java中的Servlet向客户端写Cookie时,可以通过Cookie类的getMaxAge(int expiry)方法来设置Cookie的有效期,expiry以秒为单位,它具有以下含义:
   如果expiry > 0,指示浏览器在客户端硬盘上保存Cookie的时间为expiry秒;
   如果 expiry = 0,指示浏览器删除当前Cookie;
   如果 expiry < 0,指示浏览器不要把Cookie保存到硬盘中,Cookie仅存在与当前浏览器进程中,当浏览器进程关闭后,Cookie立即消失,这就是所谓的“会话Cookie”;

cookie的生命周期


假定app1中Xweb组件在浏览器中保存了一个Cookie,当再次访问app1、app2、app3中的其它web组件时候,浏览器是否会把Cookie添加到HTTP请求中?

  在默认情况下,只有app1中的Web组件能读取该Cookie。如果想改变Cookie的贡献范围,可以通过setPath()和setDomain(String domain)方法来设置。


让同一个Tomcat服务器A中app1和app2共享Cookie,那么app1中的组件在写Cookie的代码如下:
  Cookie cookie =  new Cookie("userName","TOM");
  cookie.setPath("/");
  response.addCookie(cookie);

setPath方法中“/”表示是服务器的根路径。

只能让app2访问Cookie,则app1中的组件写Cookie的代码如下
  Cookie cookie =  new Cookie("userName","TOM");
  cookie.setPath("/app2/");
  response.addCookie(cookie);


只能让app1下的sub目录下组件访问Cookie,则app1中的组件写Cookie的代码如下
    Cookie cookie =  new Cookie("userName","TOM");
    cookie.setPath("/app1/sub/");
   response.addCookie(cookie);



让服务器B中app3下所有Web应用访问Cookie,则app1中的组件写Cookie的代码如下
  Cookie cookie =  new Cookie("userName","TOM");
  cookie.setDomain(".cat.com");
  response.addCookie(cookie);






  • 大小: 5.5 KB
  • 大小: 8.6 KB
分享到:
评论
1 楼 zkliqiang 2012-05-07  
很详细。。。

相关推荐

    学习cookie的笔记和总结

    ### 学习cookie的笔记和总结 #### 一、什么是Cookie? Cookie是一种小型的数据文件,由服务器发送到用户的浏览器,并存储在用户计算机上的一种机制。它主要用于保存用户的偏好设置、登录状态等信息,以便用户再次...

    cookie学习练习记录

    本文将深入探讨“Cookie学习练习记录”这一主题,基于提供的描述和标签,我们将围绕Cookie的使用展开讨论。 首先,让我们理解Cookie的基本原理。Cookie是由服务器发送到用户的浏览器并存储在本地的一小段文本数据。...

    Cookie的学习

    Cookie是Web开发中不可或缺的...总结来说,Cookie是Web开发中一种重要的状态管理工具,理解其工作原理和使用方法对于构建高效、安全的Web应用至关重要。同时,结合Session的学习,可以更好地掌握用户状态的持久化处理。

    java jsp Cookie学习资料

    ### Java JSP Cookie 学习资料详解 #### 一、Cookie 概述 Cookie 是一种在客户端(通常是用户的浏览器)存储信息的技术。当用户访问一个网站时,服务器可以通过 HTTP 响应头 `Set-Cookie` 向客户端发送 Cookie。...

    易语言取设cookie

    总结来说,易语言的“取设cookie”功能是网络编程中的核心部分,对于开发基于HTTP协议的Web应用程序至关重要。通过熟练掌握`InternetSetCookieA`和`InternetGetCookieA`函数的使用,可以有效地实现用户身份验证、...

    jquery cookie 实例下载

    总结起来,jQuery Cookie插件使得在JavaScript环境中操作Cookie变得简单易行。无论是设置、读取还是删除Cookie,或是设定有效期和范围,都有明确的API供开发者调用。通过学习并应用这些知识点,你可以提升Web应用...

    cookie的学习1

    总结起来,Cookie是JavaScript中用于在客户端存储数据的重要工具,通过`document.cookie`可以进行设置和获取。理解其工作原理和操作方式对于Web开发人员来说至关重要,特别是在实现用户会话管理、个性化设置等功能时...

    Cookie学习整理

    Cookie是Web应用程序中常用的一种数据存储机制,它允许服务器在...总结起来,Cookie是Web开发中用于保持客户端和服务器之间状态的重要工具,理解其创建、读取、限制及生命周期管理等知识是构建动态Web应用的基础。

    express入门(10)- cookie

    通过本文的学习,你应该已经了解了如何在Express框架中使用Cookie。无论是设置、读取还是删除Cookie都非常简单。同时,我们也强调了保护Cookie安全的重要性以及如何实施这些保护措施。希望这些知识能够帮助你在实际...

    java cookie 例子

    总结一下,Java Servlet中的Cookie管理主要包括创建、设置属性(如有效期和路径)、读取、修改和删除。这个例子中的压缩包可能包含了一个简单的Java Servlet项目,演示了如何在服务器端和客户端之间使用Cookie进行...

    cookie小实例(给初学的同学作参考)

    在IT行业中,尤其是在Web开发领域,Cookie是一种非常基础且重要的技术。...在学习和实践中,理解Cookie的工作原理和使用方式对于提升Web开发技能至关重要。希望这个小实例能帮助初学者更好地理解和掌握Cookie的运用。

    Cookie实例保存账号和密码

    总结来说,通过`login.jsp`和`bean.jsp`这两个页面,我们可以实现利用Cookie保存用户账号和密码的功能,以便在用户下次访问时自动登录。但务必注意安全性,避免直接存储明文密码,以及合理设置Cookie的生命周期。在...

    cookie和session示例

    总结,Cookie和Session都是Web开发中不可或缺的部分,理解它们的工作机制并合理使用,有助于构建更高效、安全的Web应用。在实际项目中,往往结合使用两者,例如,将Session ID通过Cookie发送,实现会话跟踪。学习和...

    Cookie属性及操作大全

    总结,Cookie作为Web开发中的基础工具,其属性和操作对于理解Web应用的工作原理至关重要。了解并熟练掌握Cookie的使用,可以帮助开发者更好地构建交互式和个性化的Web服务。同时,随着Web技术的发展,也需要关注并...

    练习2:使用Cookie简化用户登录.zip

    总结,通过合理使用Cookie,我们可以实现用户登录状态的持久化,提高Web应用的用户体验。在实际应用中,应结合安全策略,确保用户数据的安全。这个练习文件“练习2:使用Cookie简化用户登录”很可能是提供了一个示例...

    cookie使用,localStorage使用

    在Web开发中,数据存储是不可或缺的一部分,尤其是...对于学习和实践,"CookieTest"这个文件名可能包含了一些关于Cookie测试的代码示例,通过查看和分析这些代码,可以进一步加深对Cookie和localStorage的理解和运用。

    ISAPI 写Cookie范例

    总结来说,这个ISAPI写Cookie的范例为我们提供了一个在ISAPI扩展中创建、修改和删除Cookie的示例代码,这对于构建动态Web应用和管理用户会话非常有用。通过学习和理解这些代码,开发者可以更好地控制和利用Cookie来...

    Cookie与Session机制

    通过本文的学习,我们可以了解到Cookie和Session作为两种常见的会话跟踪机制,在Web开发中起着至关重要的作用。Cookie适用于轻量级的数据存储,而Session则更适合处理更多的用户状态信息。开发者应根据具体的应用...

    JavaScript入门之事件、cookie、定时等

    JavaScript作为网页开发中最广泛使用的脚本语言之一,其事件处理机制、cookie的应用、定时任务的执行是前端开发的重要知识点,对于初学者来说,理解这些概念对于学习JavaScript至关重要。 ### 事件 (Event) 在Web...

    ASP.NET中cookie读写方法介绍

    ### ASP.NET中cookie读写方法介绍 ...通过这些知识点的学习,开发者可以更好地掌握如何利用Cookie来提高Web应用的功能性和用户体验。在实际开发过程中,还需要注意安全性问题,避免敏感数据被泄露。

Global site tag (gtag.js) - Google Analytics