简单来说,Cookie是web client与web server传递信息的一种信息单元,其通过Http header进行传递,起到一定的数据缓存或身份识别的作用。下面是java servlet的相关api对Cookie的说明。
1. cookie的创建及属性
创建一个cookie,就是为servlet创建了一个传递到web浏览器的小信息单元,可以被浏览器保存并再次发送到服务器。一个cookie的值可以唯一标识一个client,因此cookie通常可以作为session的管理器,即保存一个name为sessionid的cookie。
一个cookie具有一个name和一个value,以及其他的可选的属性,诸如注释、路径、域标识符,存活时间及支持的Http版本号。一些web浏览在处理这些可选属性时可能会存在缺陷,因此为了提高servlet在接收不同的web浏览器的传回的cookie时都能良好的工作,建议谨慎的选择使用这些可选属性。
Servlet通过调用HttpServletResponse.addCookie方法把cookie添加到响应中,每次调用此方法只会添加一个cookie,该cookie会被作为Http response的头信息的一部分传递到浏览器。浏览器对每个web server支持20个cookie值,并且最多支持不超过300个cookie,而每个cookie不能超过4kb。
浏览器在向web server发送请求时,会把cookie放入Http request头中。在web container中可以通过调用HttpServletRequest.getCookies方法获取client传递来的cookie,例如在filter或者servlet等可以获取到HttpServletRequest的地方获得cookie。几个cookie可能拥有相同的名字,但却有不同的属性值,以path属性作区,因为对于不同的path,其所关联到的cookie是不同的。
cookie会影响使用它们的web page的缓存策略。在Http 1.o中,不支持对通过这个Cookie类创建了cookie的页面的缓存。在Http 1.1中,Cookie不支持Http 1.1中的cache control定义。
这里的Cookie类支持Netscape的v0,同时支持RFC 2109的v1的cookie规范。默认会创建v0的cookie以提高对不同浏览器的互操作性。
2. cookie的domain属性
cookie中有一个domain属性,通过此属性指定cookie在该domain下是有效的。domain以"."开头,例:.foo.com,这意味着cookie只对指定的domain是可见的,这里对应的是www.foo.com,但对于fox.com却是不可见的。默认情况下,cookie只能返回到创建它的服务器。如果在一级域名下还有子域名,如a.foo.com, b.foo.com等,为了能使cookie对于这两个子域都可见,那么可以通过设置domain为".foo.com",那么对于a.foo.com中创建的cookie在b.foo.com中是可见的,反之亦然。
3. cookie的生命周期
每个cookie都有生命周期,这可以通过maxAge属性设置cookie的过期时间。如果maxAge设置为正值,表示在不活动的情况下,过了maxAge秒该cookie会过期;如果设置为负值,则意味着当浏览器退出时,cookie会被删除,也即浏览器不会对cookie做持久性存储;如果设置cookie为0,相当于对浏览器端的cookie做了删除操作。
4. cookie的path属性
cookie的path属性指定了cookie应该被client返回的路径,即与cookie相关联的那个文件或目录。cookie对于你设置的目录中的所有页面都是可见的,对于此目录的所有递归子目录中的页面也是可见的。cookie的path属性必须包含设置该cookie的那个servlet。例如为cookie设置path为"/catalog",那么对于服务器上/catalog目录下的所有子目录来说,此cookie是可见的。
分享到:
相关推荐
### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据存储方式,用于保存用户的一些基本信息或者状态,从而实现网站的个性化设置或登录状态保持等功能。Extjs 作为一种强大的 ...
关于Cookie有效期.txt
这是php中的一个关于cookie 的应用,在php中传入cs的变量值
Java小技巧:关于Cookie的操作.txt
在JavaScript中,Cookie是用于在用户浏览器中存储小量数据的一种机制。它们是HTTP协议的一部分,主要用于跟踪用户会话、存储用户首选项或保存登录状态。Cookie由服务器生成,并通过HTTP响应头发送到浏览器,浏览器在...
此外还可以直接通过`header()`函数发送`Set-Cookie`响应头来设置Cookie。 ##### 使用`setcookie()`函数 `setcookie()`函数的基本语法如下: ```php bool setcookie ( string $name [, string $value [, int $...
标题中的“cookie”一词指的是Web...以上是关于Cookie技术的基本介绍,具体实现细节和使用技巧可能需要参考原文档或“cookie.jsp”文件的内容。对于开发者来说,理解和熟练使用Cookie是构建高效、安全的Web应用的基础。
标题“使用Cookie记录用户名和密码”涉及到的是Web开发中的用户会话管理技术,特别是关于Cookie的应用。Cookie是一种在客户端和服务器之间传递信息的小型文本文件,常用于保持用户登录状态、存储用户偏好设置等。在...
8. **教育功能**:Cookie Pal还可能包含关于Cookie工作原理、隐私风险以及如何安全使用网络的教育资源,帮助用户提升网络安全意识。 了解并掌握Cookie Pal的使用,不仅有助于提升在线浏览的安全性和效率,还能让...
在Web开发中,数据存储是不可或缺的一部分,尤其是...对于学习和实践,"CookieTest"这个文件名可能包含了一些关于Cookie测试的代码示例,通过查看和分析这些代码,可以进一步加深对Cookie和localStorage的理解和运用。
用户可以访问该网站获取更多关于Cookie管理和清理的资源和信息。 6. **注意事项**: - 清理Cookie可能会影响某些网站的正常功能,如自动登录、购物车状态等。 - 不是所有Cookie都是有害的,适度管理以平衡便利性...
在Java编程中,Cookie是一种非常重要的技术,它用于在客户端和服务器之间传递信息,尤其是在实现用户会话管理、个性化设置等方面。...通过不断实践和深入学习,开发者可以掌握更多关于Cookie和Web开发的高级技巧。
今天有同事又问起关于cookie的问题,我就到网上查询了一下做了一些相关的摘要记录下来,以备不时之用。关于cookie的操作,做为JS程序员应该是相对熟悉一些的,所以就不对它进行过多的说明了。 以下就是关于各...
ISAPI开发者需要理解HTTP协议,特别是关于Cookie的规范,以便正确地设置和读取Cookie。 在实际开发中,除了基本的Cookie操作,还可能需要处理其他复杂情况,如处理多个Cookie、考虑安全性(如防止跨站脚本攻击XSS)...
在Spring Boot应用中,登录验证通常涉及到Cookie和Session两种技术,它们都是用于用户身份验证和会话管理的重要手段。本文将深入探讨如何在Spring Boot中使用Cookie和Session进行登录后的拦截处理。 首先,简单介绍...
**关于Cookie的解释**: Cookie,通常称为"小甜饼",是由服务器发送到用户的浏览器并存储在本地的一小段文本数据。它们被用来追踪用户的在线行为,比如保持登录状态、记录购物车内容或者个性化网站体验。第一方...
关于Cookie的设置,Cookie是Web服务器存储在用户浏览器中的小数据块,常用于会话管理、个性化设置等。当处理跨域请求时,有些情况下可能需要传递Cookie。默认情况下,浏览器只会发送同源的Cookie。如果需要在跨域...
"cookie_demo2.zip"这个压缩包文件似乎包含了一个关于Cookie使用的示例,特别是关注于Cookie的生命周期。接下来,我们将深入探讨Cookie、Session以及它们生命周期的相关知识点。 **1. Cookie的基本概念** Cookie是...
Cookie是Web应用程序中用于管理用户会话和存储用户...通过深入阅读“Cookie相关PDF文档”,你可以获得关于Cookie的全面理解,包括其工作原理、最佳实践、安全考虑和隐私法规,以及如何在实际项目中有效地应用Cookie。