Cookie知识整理
Cookie整理
最近在项目中需要用到Cookie来实现从一个域名到另外一个域名的免登。于是需要了解整理一下Cookie的相关知识。
由于HTTP协议是无状态的协议(虽然Socket连接是有状态的,但每次用HTTP协议进行数据传输后就关闭的Socket连接,因此,HTTP协议并不会保存上一次的状态),因此,如果要保存某些HTTP请求过程中所产生的数据,就必须要有一种类似全局变量的机制保证数据在不同的HTTP请求之间共享,所以要用到Cookie来标识用户状态。
一,设置Cookie
Cookies分为[内存Cookie](临时Cookie,在浏览器关闭的时候消失),和[硬盘Cookie](写到客户端的硬盘中)。
每个Cookie有一个超时时间,内存Cookie只写到客户端的内存中,其超时时间为任何负数。如下可以定义一个内存Cookie:
Cookie cookie = new Cookie("key","value");
cookie.setMaxAge(-1);
response.addCookie(cookie);
对于硬盘Cookie,可以对其进行超时时间的设置,以秒为单位,如下定义一个硬盘Cookie:
Cookie cookie = new Cookie("key","value");
cookie.setMaxAge(3600); //在此定义了Cookie的有效时间为一个小时。
response.addCookie(cookie);
永久Cookie在任意新开启的IE窗口都可以生成Cookie。而临时Cookie由于只保存在当前IE窗口,因此,在新开启的IE窗口,是不能生成Cookie字段的,也就是说,新窗口和旧窗口是不能共享临时Cookie的。使用重定向机制弹出的新窗口也无法和旧窗口共享临时Cookie。但在同一个窗口可以。如在一个IE窗口输入http://localhost:8080/test/first.jsp,向内存写入一个临时Cookie后,在同一个IE窗口输入http://localhost:8080/test/second.jsp,浏览器在向服务端发送HTTP请求时,自动将当前浏览器的临时Cookie(也就是first.jsp所创建的Cookie)和永久Cookie作为HTTP请求头的Cookie字段值发送给服务端。但是如果新启一个IE窗口,由于新IE窗口没有这个临时Cookie,因此,second.jsp只发送了保存在硬盘上的永久Cookie。
设置Cookie的时候还有其他参数可以设置
●path,设置哪些目录下的应用可以访问改Cookie。如下设置:
Cookie cookie = new Cookie("key","value");
cookie.setPath("/test/test2"); //在此定义了/test/test下的应用可以访问该Cookie。
response.addCookie(cookie);
path的默认值是"./"为当前路径。
●Domain,设置Cookie生成的域。如下:
Cookie cookie = new Cookie("key","value");
cookie.setDomain(".channel.alisoft.com"); //在此定义了Cookie生成在哪个域下面
response.addCookie(cookie);
这个参数必须以"."开始。
下面说下怎么通过setDomain的方法实现Cookie的跨域访问:
A机所在的域:home.aaa.com,A有应用appInA。
B机所在的域:bbb.com,B有应用appInB.
1)在appInA下面设置cookie的时候,增加cookie.setDomain(".bbb.com");这样在appInB下面就可以取到cookie。
2)输入url访问appInB的时候,必须输入域名才能解析。比如说在A机器输入:http://bbb.com:8080/appInB,可以获取appInB在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/appInB则不可以获得cookie。
3)设置了cookie.setDomain(".bbb.com");,还可以在默认的home.aaa.com下面共享。
4)问题:怎么设置多个域?在多个域下共享。网上找了很久都没有找到真正能用的方法,估计要用其他技术实现了。
二,读取Cookie
读取Cookie可以按照下面的语句进行:
Cookie[] cookies = request.getCookies();
然后用for语句查找你想要的Cookie。
该方法可以读取当前路径以及"直接父路径"的所有Cookie对象,如果没有任何Cookie的话,则返回null
三,删除Cookie
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
设置为0为立即删除该Cookie
cookie.setPath("/test/test2");
删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie
response.addCookie(cookie);
分享到:
相关推荐
1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。...
在本篇文章里小编给大家整理的是关于php如何更新cookie内容的相关知识点,有需要的朋友们学习下。
整理一下会话的知识点,包含:cookie,session,token 锁包括重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁,这里逐个进行介绍。 线程的方方面面。 zookeeper zookeeper主要功能包括:配置维护、域名...
涉及范围包括涉及开发中的计算机学科基础知识,高级语言的基础知识,继承阅读笔记,数据库知识,数据挖掘知识等,同时也会涉及到一些具体的生产场景中会遇到的一些实际问题。项目基础信息该项目的基本信息。 项目名...
这又涉及到了本人的知识盲区 借这个题学习补充一下知识 自己走过的路加wp辅助 信息收集加思路推理 点击一下/welcome.txt 回显 render 而且url处有异常 同理测试其他选项 通过猜测可知filehash的值就是/hint.txt中的...
在本篇文章中小编给大家整理的是一篇关于Python中的Cookie模块用法的相关知识点文章,需要的朋友们可以参考下。
本文旨在加深对前端知识点的理解,资料来源于网络,由本人收集整理。 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5...
本文旨在加深对前端知识点的理解,资料来源于网络,由本人收集整理。 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5...
技术基础 New Folder ...知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#]...
本资源是java后端开发持久层框架...13.Cookie和Session 14.MD5加密 15.正反向代理 16.mybatis调用流程 17.动态SQL 以及相关知识.希望对大家有所帮助, 如果有哪里不足的还希望大家多多指教, 祝大家在技术道路上飞黄腾达,
主要用与记录前端复习知识点 github git clone 慢解决方案 git clone HTML基础 主流浏览器及其内核整理 div+css的布局较table布局有什么优点? 渐进增强和优雅降级的区别 浏览器存储Cookie、sessionStorage、...
该云视频学习平台,于学生而言,该平台对学生可以选择的方向做出了总结规划,对已经明确了学习方向的学生做出了多条清晰的学习路线,为学生整理好了每一阶段所需所学。对教师来说,该平台可以让教师实时跟踪学生的...
17.4.7 数据整理 17.5 本章小结 第18章 电子商务网站-网上购物系统 18.1 任务分析 18.1.1 用户登录 18.1.2 购物车 18.1.3 结算和完成购物 18.1.4 其他相关功能 18.1.5 管理员的操作界面 18.2 数据库的建立 18.2.1 ...
http和socket通信的区别,tcp和udp的区别,session和cookie的区别 block实现原理 响应链 frame 和 bounds 写一个宏MIN,这个宏输入两个参数并返回较小的一个 #define MIN(a,b) ((a)>(b)?(b):(a)) 什么是KeyPath #...
最近整理的http的相关技术点跟区别,可能面试会用的到的哦,涉及的知识点有tcp/udp区别,cookie跟session的区别,还有get和post的区别,c/s的开发过程,http的连接过程。
Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多。下面通过本文给大家分享html5本地存储相关知识,感兴趣的的朋友一起看看吧
知识体系:对安卓知识体系做整理。 项目:在WanAndroid上发布的项目。 用户界面:用户的信息和其他一些辅助功能。 收藏体系:依靠Cookie持久化,实现对文章的收藏和展示。 用户体系:登录、注册、Cookie持久化。 ...
前端资料整理 ##HTML ##CANVAS ##H5 ##CSS ##LESS ##Autoprefixer ##CSS3 ##Font ##SASS ##Scope ##BEM ##JS ##swiper滑动插件 ##Ajax ##heatMap热力图 ##prototype原型链 ##JQuery ##语法高亮 ##ES6 ##正则 ##MD5 #...
全书共分27章,包括初识.PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间、Cookie与Session、图形图像处理技术、...
前端基础知识笔记自己的复习笔记整理Javascript:前端-D1-2020/11/30前端-D2-2020/12/01 复习前端-D3-2020/12/02 复习前端-D4-2020/12/03 复习 redux 工作流(理论+图) 为什么需要 redux? 数组拍平 link 和@import...