`

cookie工作原理

阅读更多

一,cookie简介

        Cookie是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。而硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。

二,cookie常用属性   

    Domain:域,表示当前cookie所属于哪个域或子域下面。只有访问该cookie所属于的域名时,才会带上该cookie信息至服务端。例如:设置Domain为"pandan.xyz"二级域名,那么浏览器访问www.pandan.xyz和bbs.pandan.xyz等三级域名时,都会带上该cookie信息。

    Path:路径,表示cookie的所属路径。默认为"/",访问cookie所属的路径时,请求才会带上该cookie信息。

    Secure:表示该cookie只能用https传输。一般用于包含认证信息的cookie,要求传输此cookie的时候,必须用https传输。如果此值设置为true而网络协议是http非安全协议,请求是不会带上该cookie信息的。

    HttpOnly:表示浏览器js脚本不能读取该cookie信息。可以有效的防止xss攻击。

    Expires/Max-Age:表示cookie的过期时间。Expires是过期日期(绝对时间),Max-Age是相对时间(相对于当前时间的毫秒数)。

三,应用举例

  

/**向客户端写cookie信息的方式1*/
  Cookie c = new Cookie(name, value);
  c.setPath("/");
  c.setDomain(".pandan.xyz");
  c.setMaxAge(maxAge);//0表示清除客户端cookie信息,-1(小于0)表示会话cookie,大于0持久化cookie
  response.addCookie(c);

/**向客户端写cookie信息的方式2*/
  StringBuilder sb = new StringBuilder();
  sb.append(name).append("=").append(value).append(";");
  sb.append("Domain=").append(".pandan.xyz").append(";");
  if(maxAge >= 0){
      sb.append("Max-Age=").append(maxAge).append(";");//maxAge:相对时间(毫秒数),Max-Age对于IE浏览器不支持,要设置Expires属性
  }
  sb.append("Path=/;");
  sb.append("HttpOnly;");
  response.setHeader("Set-Cookie", sb.toString());

 
  对于servlet3.0以下的版本是没有设置httpOnly属性的方法的,只能通过方式二进行cookie httpOnly属性的设置,servlet容器将方式一设置的cookie信息,最终还是以方式二的方式输出给浏览器的。

 

 

分享到:
评论

相关推荐

    php cookie工作原理与实例详解

    **PHP Cookie工作原理** Cookie是由Web服务器存储在用户浏览器中的小型文本文件,用于在客户端和服务器之间传递信息。当用户访问一个网站时,服务器可以通过设置Cookie来存储特定的数据,如用户的登录状态、偏好...

    SYN Cookie原理及在Linux内核中的实现

    SYN Cookie原理与Linux内核实现详解 SYN Flood攻击是一种常见的分布式拒绝服务(DoS)攻击手段,尤其在网络环境基于IPv4的TCP/IP协议栈中。这种攻击利用TCP协议的三次握手流程,通过发送大量伪造源地址的SYN请求,...

    Cookie的应用例子

    下面将详细讲解Cookie的工作原理、如何使用以及一些实际应用案例。 一、Cookie工作原理 Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,它存储在用户的本地硬盘上。每次用户访问同一服务器时,浏览器...

    cookie机制实现登陆、退出

    在Web开发中,Cookie是一种非常重要的技术,它用于在客户端和服务器之间传递状态信息。Cookie机制主要用于实现用户登录...在`cookie_demo`这样的项目中,开发者可以学习和实践这些概念,以加深对Cookie工作原理的理解。

    COOKIE注入原理动画教程

    1. **Cookie的工作机制**:首先,我们需要了解Cookie是如何被创建、存储和发送到服务器的,以及它在用户身份验证和会话管理中的作用。 2. **注入攻击过程**:攻击者如何构造恶意的Cookie值,这些值可能包含SQL语句...

    Cookie Pal (Cookie管理工具)

    8. **教育功能**:Cookie Pal还可能包含关于Cookie工作原理、隐私风险以及如何安全使用网络的教育资源,帮助用户提升网络安全意识。 了解并掌握Cookie Pal的使用,不仅有助于提升在线浏览的安全性和效率,还能让...

    史上最透彻的的cookie讲解

    在描述中提到的"史上最透彻的Cookie讲解"视频,可能是对Cookie工作原理、使用方法以及常见应用场景进行了详尽的解析。它可能涵盖了以下几个方面: 1. **Cookie的创建与发送**:当服务器通过HTTP响应头中的`Set-...

    cookie与session深入讲解

    1. **Cookie 工作原理** - 当用户登录网站时,服务器会在响应中包含一个 Set-Cookie 头部,将特定信息(如用户ID)发送给客户端(浏览器)。这个信息以键值对的形式存储,成为 Cookie。 - 客户端在后续的请求中会...

    易语言例程源码,易语言清COOKIE模块模块

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,使得非计算机专业背景的用户也能较为容易地学习编程。...同时,这也是一个了解浏览器COOKIE工作原理的好机会,有助于提升网络安全方面的知识。

    关于session与cookie的原理简述

    【Session与Cookie原理简述】 Session和Cookie是两种在Web开发中常见的用户状态管理机制,它们主要用于在HTTP协议无状态的特性下跟踪用户状态。理解它们的原理对于编写高效的Web应用至关重要。 **Cookie原理** ...

    session和cookie交互原理

    介绍下cookie和session之间是咋交互的。原理是啥

    GUI check list

    这篇文档提供了关于如何理解cookie工作原理以及如何测试使用cookie的系统的技术背景和实际案例。 首先,文档介绍了无状态和有状态系统的概念。无状态系统指的是系统不保存之前交互的状态,每次请求都是独立的;而有...

    WEB阶段面试题汇总(精华版).pdf

    - **Cookie工作原理**: - 服务器通过`Set-Cookie`响应头向客户端发送Cookie。 - 客户端将Cookie保存在本地,并在后续请求中通过`Cookie`请求头自动发送给服务器。 - **Session工作原理**: - 服务器创建Session...

    带你了解session和cookie作用原理区别和用法

    本资源主要介绍了session和cookie的作用原理、区别和用法,帮助读者更好地理解两者之间的关系。 Cookie概念 Cookie是浏览器端存储的一种小文本文件,用于记录用户的信息,以便在后续的访问中使用。Cookie可以根据...

    cookie记住账号密码

    这涉及到Web开发中的基本概念,主要包括Cookie的工作原理、安全性以及相关编程实践。 Cookie是服务器发送到用户浏览器并存储的一小块数据,它包含了特定的用户信息。当用户访问设置了Cookie的网站时,浏览器会自动...

    FlashCookie 不被浏览器清除的Cookie

    FlashCookie的工作原理是,当用户访问使用Flash技术的网站时,该网站可以请求在用户的本地存储设备上创建或更新一个Local Shared Object。这些对象存储在与Flash Player关联的特定目录下,而不是在浏览器的Cookie...

    Cookie浏览器

    1. **Cookie的定义与工作原理** - Cookie是由Web服务器发送到用户的浏览器并存储在那里的一小块信息,当用户再次访问同一网站时,浏览器会将这些信息返回给服务器。 - 主要分为Session Cookie和Persistent Cookie...

    cookie原理解析

    Cookie 的工作原理是,服务器向客户端颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。Cookie 实际上是一小段的文本信息。客户端请求服务器,如果服务器需要...

Global site tag (gtag.js) - Google Analytics