一,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信息,最终还是以方式二的方式输出给浏览器的。
相关推荐
工作原理与一些对于cookie读写操作实例。 Cookie和会话状态 做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址! 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和...
在目前以IPv4为支撑的网络协议上搭建的网络环境中...本文就分别介绍一下SYN Flood攻击和SYN Cookie的原理,更重要的是介绍Linux内核中实现SYN Cookie的方式。最后,本文给出一种增强目前Linux中SYN Cookie功能的想法。
COOKIE注入原理动画教程,教你掌握cooke注入的原理,值得一看!
cookie机制详解 Cookie 工作原理详细介绍
介绍下cookie和session之间是咋交互的。原理是啥
session和cookie原理解释以及他们的相同点和区别。
介绍cookie种类以及在整个会话中工作原理和过程,内容介绍比较通俗易懂,主要针对在了解网页访问中,一些解析和破解等问题、
Session与Cookie实现原理
深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很...
主要介绍了session和cookie作用原理,区别和用法,以及使用过程中的优缺点,通过列举区别和原理,使读者更能理解两者之间的关系,需要的朋友可以参考下
cookie注入攻击,很详细,包括COOKIE格式,Cookie欺骗原理,利用JavaScript来设置cookie等
(1)这个demo使用.NET4.0框架,C#语言编写的Winform程序,使用GeckoFX 33.0.9版本火狐...(3)cookie读取原理简单介绍:火狐是使用sqlite数据库存储cookie的,都在cookies.sqlite中了。不明白的请自行百度sqlite数据。
教程名称: 【动力节点】Java经典教程_Servlet视频教程之Cookie动力节点推出...其次详细讲解了Session的工作原理;然后讲解了Session的失效;最后讲解了Coo 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
深入理解Servlet/JSP之“Cookie和Session原理” 由于HTTP协议的无状态特征,Web应用中经常使用Cookie和Session来保存用户在与系统交互过程中的状态数据。下面通过分析HTTP协议对Cookie和Session的工作原理加以了解。
Web协议详解与抓包实战
什么是cookie? cookie 是本地计算机的临时存储。 作用:在浏览器中进行数据的存储,用户名、密码(比如:保存页面信息,自动登录等)。 特点: cookie需要在服务器环境下运行; cookie的容量在4kb左右,限制为每个...
主要介绍了Java 模拟cookie登陆简单操作,结合实例形式分析了Java 模拟cookie登陆的相关原理与基本实现技巧,需要的朋友可以参考下
PHP 利用COOKIE验证用户登录的例子,用户名和密码存于数据库中,其中的数据库操作不是该例子的重点,本例子适合PHP新手学习COOKIE的工作原理和如何使用COOKIE。