1.cookie是什么
cookie 是一小文本信息,伴随用户请求在web服务器和浏览器之间传递。用户每次访问站点的时候,web应用程序都可以读取cookie包含的信息。在用户请求网站的某页面时,应用程序不仅返回请求的页面,同时也返回一个包含日期和时间的cookie。该cookie可能会保存在客户端的cookie文件夹中。
(注:cookie和session的区别在于cookie是在客户端保持状态的方案,而session则是在服务器端保持状态的方案。同时,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。)
2.cookie 的限制
大多数浏览器支持最多可达4096字节(大约4KB)cookie。浏览器还限制了一个站点可以在客户端保存cookie数。大多数浏览器允许每个站点最多放20个cookie。如果试图保存更多的cookie,那么先前的cookie将被删除。还有些浏览器会对来自所有站点cookie总数限制,这个限制通常为300个。
3.cookie 的创建
创建cookie的时候要指定几个值。首先,指定cookie的名字和要保存的值。您也可以创建多个cookie。但每个cookie的名字必须唯一,以便日后取值时识别。(cookie是按名字储存的,所以如创建两个名称相同的cookie,那么最后那个cookie将覆盖前一个。)
4.cookie的持久性
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口或者会话超时,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
当用户下次访问站点的时候,浏览器会先检查站点的所有cookie, 如果某个cookie已经过期,浏览器不会把这个cookie随页面请求一起发送给服务器,而是删除这个已经过期的cookie。(程序可以在用户磁盘上写入多个cookie。但个每个cookie的过期日期和时间不同。)
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
5.cookie的发送
创建Cookie对象--》设置最大时效--》将Cookie放入到HTTP响应报头
如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie - 存储在浏览器的内存中,用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
cookie的发送需要使用HttpServletResponse的addCookie方法,将cookie插入到一个Set-Cookie HTTP请求报头中。由于这个方法并不修改任何之前指定的Set-Cookie报头,而是创建新的报头,因此我们将这个方法称为是addCookie,而非setCookie。同样要记住响应报头必须在任何文档内容发送到客户端之前设置。
6.cookie的读取
通过调用调用HttpServletRequest的getCookies方法,可获得Cookie对象的数组,对应由HTTP请求中Cookie报头输入的值。对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止。cookie与你的主机(域)相关,而非你的servlet或JSP页面。因而,尽管你的servlet可能只发送了单个cookie,你也可能会得到许多不相关的cookie。
例如:
String cookieName = “userID”;
Cookie cookies[] = request.getCookies();
if (cookies!=null){
for(int i=0;i<cookies.length;i++){
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName())){
doSomethingWith(cookie.getValue());
}
}
}
分享到:
相关推荐
6.1 session和cookie 6.2 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 ...
《PHP网络编程技术详解》这本书深入浅出地探讨了PHP在网络编程中的应用,涵盖了从基础概念到高级技术的广泛知识领域。PHP作为一种流行的服务器端脚本语言,常用于构建动态网站和Web应用程序。通过这本书,读者可以...
- **session和cookie**:解释session和cookie的区别及其在Web开发中的作用。 - **Go如何使用session**:演示如何在Go中实现session管理。 - **session存储**:讨论常见的session存储方案,如内存、文件系统、数据库...
在Java的Web编程中,Session技术扮演着至关重要的角色,它是服务器端用来跟踪用户状态的一种机制。当Web应用无法在无状态的HTTP协议中保持用户信息时,Session就显得尤为重要。下面将详细介绍Session的工作原理、...
### Web.config配置详解 #### 一、Web.config 文件概述 Web.config 文件是 ASP.NET 应用程序中的核心配置文件,采用 XML 格式编写。它主要用于存储与 ASP.NET Web 应用程序相关的各种配置信息。每个 ASP.NET Web ...
Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 JVM虚拟机 JVM特点,结构与执行周期 JVM类加载机制 JVM运行时区数据 JVM执行引擎和垃圾回收 基础语法 理解Java中对象基础Object类 ...
6. **session和cookie**:session和cookie是Web应用程序中管理用户状态的重要手段。PHP内置了对session和cookie的支持,可以方便地设置和读取它们,实现用户登录状态的维护。 7. **面向对象编程**:PHP 5引入了完整...
Java Web开发是一个涵盖广泛的主题,包括使用Java语言进行服务器端编程、网页交互、数据库操作以及应用框架的使用等。在这个"java web开发详解源代码"的压缩包中,我们可以期待找到一系列与Java Web相关的源代码示例...
6. **会话管理**:掌握如何在Web应用中实现用户会话跟踪,包括使用Cookie和Session对象。 7. **安全配置**:学习如何配置Tomcat以增强Web应用的安全性,包括认证、授权和加密。 8. **连接数据库**:通过Java ...
包括默认的编程语言(defaultLanguage)和调试模式(debug)。默认语言可以是C#或***,调试模式用于确定应用程序在开发阶段是否显示详细的调试信息。 3. <customErrors>:这部分允许设置自定义错误处理。mode属性...
### C#中的Cookie编程知识点详解 #### 一、Cookie简介 在C# Web开发中,Cookie是一种用于存储用户数据的小型文本文件,通常用于跟踪用户的会话状态或偏好设置等。通过Cookie,开发者可以在用户的浏览器上保存一些...
【Java Web项目构建详解】 Java Web项目是基于Java技术栈构建的互联网应用程序,它结合了后端服务器端处理、数据库存储以及前端用户交互等多方面技术。本项目以"编程爱好者博客地带"为主题,旨在为编程爱好者提供一...
### Go Web 编程知识点概览 #### 一、Go语言基础 1. **环境配置与安装** - **Go的安装**: 提供了不同操作系统(如Windows、Linux、macOS)下的安装包,便于用户根据自身环境进行选择。 - **`GOPATH`与工作空间**...
在Web开发中,Cookie是一种小型文本文件,由服务器发送到用户的浏览器并存储在本地,用来保存用户的状态信息,如登录状态、购物车内容等。在这个实例中,Cookie被用于存储用户在网站上选择的商品信息。 【描述】...
Spring框架是Java领域中实现MVC模式的首选,它提供了依赖注入、AOP(面向切面编程)等功能,极大地简化了Java Web开发。开发者需要学习如何在Tomcat上配置和运行Spring Boot应用,以及如何利用Spring MVC创建控制器...
**CGI**(Common Gateway Interface)技术是最早的Web编程技术之一,它允许外部程序通过标准输入/输出接口与Web服务器通信,从而动态生成HTML页面。虽然CGI具有一定的灵活性,但存在以下缺点: - **开发效率低**:需要...
通过"asp.net网络编程技术详解(闫继涛)"的学习,开发者能够掌握上述核心技术,并运用到实际项目中,创建高性能、安全的Web应用程序。这份资料将涵盖实践案例、代码示例和详细的解释,是ASP.NET学习者的宝贵资源。
4. **会话管理**:使用session_start启动会话,并设置合适的session.cookie_secure和session.use_only_cookies选项来增强安全性。避免在URL中传递session ID,防止会话劫持。定期清理无效的会话数据。 5. **错误...