cookie的路径和域
1.Cookie的路径介绍
我们知道Cookie 的属性有很多,其中有一个属性是路径path。有些人认为Cookie 的路径指的是Cookie 在客户端的保存路径,其实并不是。Cookie 的路径是相对于域domain的地址。
Cookie 的路径是在服务器创建Cookie 时设置的,它的作用是决定浏览器访问服务器的某个资源时,需要将浏览器端保存的那些Cookie 归还给服务器。
图中,浏览器端保存的Cookie 有三个,分别是Cookie1、Cookie2 和Cookie3。它们三个的访问路径分别为:“/Example/cookie“、”/Example/“、”Example1/cookie“。浏览器访问服务器端的路径为:”
http://localhost:8080/Example/cookie/a/index.jsp“。也就是说index.jsp 页面的访问路径为:”/Example/cookie/a/
“,该路径包含了Cookie1 和Cookie2 的路径,因此在访问index.jsp 时,浏览器会将Cookie1 和Cookie2
发送给服务器。这就是Cookie 的路径的作用,其中涉及到访问路径。
如果服务器创建Cookie 时没有设置路径,那么该Cookie 的路径是当前资源的访问路径。例如:在
index.jsp 页面中创建了一个Cookie,index.jsp 页面的访问路径为“/Example/“,那么该Cookie 的路径就
是”/Example/“。如果服务器创建Cookie 时设置了路径,那么Cookie 的路径就是设置的路径,例如:
cookie.setPath(“/Example/cookie”),那么该Cookie 的路径就是”/Example/cookie“。
需要注意的是,大家不要将包含的关系弄混淆了,是访问路径包含cookie 的路径。例如,浏览器中保
存如下几个cookie,它们的路径分别是:
aCookie.path=/Example20/;bCookie.path=/Example20/jsps/;cCookie.path=/Example20/jsps/cookie
访问路径是:http://localhost:8080/Example20/index.jsp
浏览器发送给服务器的cookie 有:aCookie;
访问路径是:http://localhost:8080/Example20/jsps/a.jsp
浏览器发送给服务器的cookie 有:aCookie,bCookie;
访问路径是:http://localhost:8080/Example20/jsps/cookie/b.jsp
浏览器发送给服务器的cookie 有:aCookie,bCookie,cCookie。
2. Cookie 的域
Cookie 还有一个属性就是域,Cookie 类中有设置和获取cookie 域的方法,如下所示:
Void setDomain(String pattern):设置cookie 的域;
String getDomain():获取cookie 的域,返回值的类型是String 类型。
其中Domain 单词就有域名的意思。一般我们很少使用cookie 的域,只有在多个二级域共享Cookie
时才用。例如:www.baidu.com、zhidao.baidu.com、news.baidu.com、tieba.baidu.com 这些域可以理解是百
度的子项目,现在要在这些域中共享cookie,就需要使用cookie 的域,使用时需要注意以下两点:
设置domain 为:setDomain(".baidu.com”);
设置path 为:setPath(“/”)。
默认cookie的域是当前域名,默认cookie的路径是当前页面的目录路径。如果想要跨域或者在其他的路径下访问cookie就必须要重新设置这两个属性,domain和path。
www.baidu.com/content/example/3.jsp 则域domain为www.baidu.com, 路径path为/content/example
cookie的路径和域的更多相关文章
- JavaScript中cookie的路径(path)和域(domain)
cookie虽然是由一个网页所创建,但并不只是创建cookie的网页才能读 取该cookie.在默认情况下,与创建cookie的网页在同一目录或子目录下的所有网页都可以读取该cookie.但如果在这个 ...
- cookie的路径问题
今天公司网站(不考虑跨域访问情况)有个需求就是在一个路径下存一个cookie 比如这样 www.fdf.com/vichain/dashback/myback 在这个目录下存放一个cookie 在这 ...
- cookie的路径决定服务器在发送请求时候 是否决定发送 当路径匹配时候 则发送给服务器(默认发送原则)
1.cookie路径默认为当前访问地址的上一级路径 2.当前访问地址的路径包含了cookie的路径 则发送给访问的地址 3.路径决定cookie发送与否 4.发送包含在当前路径里面的cookie
- axious设置携带cookie同时允许跨域的问题
axious设置携带cookie同时允许跨域的问题
- cookie domain path 跨域
1.domain表示的是cookie所在的域,默认为请求的地址,如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net.而跨域访问,如域A为t1 ...
- P3P解决cookie存取的跨域问题
最近在做一个流量统计的东西的时候,偶然发现IE在对iframe里面的页面写Cookie的时候有一些安全限制,导致读取Cookie不成功,找了好长时间的解决办法,重要找到如下的办法: 1.页面里的COO ...
- JS访问或设置cookie的方法+跨域调用方法
无意中从163网站获取的JS访问或设置cookie的方法,Log到日志上以防遗忘 //COOKIE功能检查function fCheckCookie(){ if(!navigator.cooki ...
- [JavaEE笔记]Cookie
引言 由于 Http 是一种无状态的协议,服务器单从网络连接上无从知道客户身份. 会话跟踪是 Web 程序中常用的技术,用来跟踪用户的整个会话.常用会话跟踪技术是 Cookie 与 Session. ...
- Cookie和Session的区别
前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...
随机推荐
- jdbc 中 excute executeUpdate的用法作用
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...
- Python Numpy ValueError: data type must provide an itemsize
天朝网络锁国,百度找了半个小时找不出来原因,只能谷歌 谷歌第一条就是,顿时感觉幸福感来的太突然 原因是输入的矩阵均是字符串(从文件里读的) 那么就需要批量转数组,一行一行的转. 下面是我的代码: ro ...
- .net 连接Redis
Redis安装 公司业务需要,弄了个类似于消息队列的东西,由客户端一直轮询取得信息.之前一直是走表的,但是效率以对表的使用都太过频繁,想试着用一下Redis,看看效率怎么样. 首先是安装Redis,这 ...
- c++ 模板仿函数初探
一直以来对于C++的使用基本上都是C with class,对于各种尖括号的模板都是敬而远之,最近忽然觉得该好好看看模板了.于是就有了这篇blog. 本文以一个查找问题为例来说明模板仿函数. 在C中, ...
- Django应用部署:nginx+uwsgi方式
环境准备 nginx+uwsgi方式部署顾名思义,需要nginx和uwsgi两个软件包. nginx不用说,是必备的,关于nginx的安装本文不再赘述,详情可以自行搜索或者参考我以前的文章: Debi ...
- class 中构造函数与析构函数
import pymysql class My_sql(): def __init__(self, host, user, passwd, db, port=3306, charset='utf8') ...
- 41、Android中当数据库需要更新时我们该怎么办?
转载 http://blog.csdn.net/jiangwei0910410003/article/details/39670813
- openssl 升级操作 -2
首先我觉得没事就用绿盟扫漏洞的公司,就是闲的蛋疼,傻逼!不少服务器使用nginx,如果openssl 是静态编译的,直接将openssl 编译到nginx里面去了,这就意味着,单纯升级openssl ...
- win10 IoT开发 SerialDevice 返回 null
树莓派3,win10 Iot,串口开发,抄例子,串口获取返回老是null,例子却可以,代码一样,上网查询结果如下: https://stackoverflow.com/questions/341603 ...
- 移动端H5页面自适应手机屏幕宽度
1.由于本人使用的是sublime.text,使用rem就可以达到效果. 点击菜单中的preferences下的browse packages,选择cssrem-master,添加或者编写cssrem ...