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的路径和域的更多相关文章

  1. JavaScript中cookie的路径(path)和域(domain)

    cookie虽然是由一个网页所创建,但并不只是创建cookie的网页才能读 取该cookie.在默认情况下,与创建cookie的网页在同一目录或子目录下的所有网页都可以读取该cookie.但如果在这个 ...

  2. cookie的路径问题

    今天公司网站(不考虑跨域访问情况)有个需求就是在一个路径下存一个cookie 比如这样 www.fdf.com/vichain/dashback/myback  在这个目录下存放一个cookie 在这 ...

  3. cookie的路径决定服务器在发送请求时候 是否决定发送 当路径匹配时候 则发送给服务器(默认发送原则)

    1.cookie路径默认为当前访问地址的上一级路径 2.当前访问地址的路径包含了cookie的路径 则发送给访问的地址 3.路径决定cookie发送与否 4.发送包含在当前路径里面的cookie

  4. axious设置携带cookie同时允许跨域的问题

    axious设置携带cookie同时允许跨域的问题

  5. cookie domain path 跨域

    1.domain表示的是cookie所在的域,默认为请求的地址,如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net.而跨域访问,如域A为t1 ...

  6. P3P解决cookie存取的跨域问题

    最近在做一个流量统计的东西的时候,偶然发现IE在对iframe里面的页面写Cookie的时候有一些安全限制,导致读取Cookie不成功,找了好长时间的解决办法,重要找到如下的办法: 1.页面里的COO ...

  7. JS访问或设置cookie的方法+跨域调用方法

    无意中从163网站获取的JS访问或设置cookie的方法,Log到日志上以防遗忘 //COOKIE功能检查function fCheckCookie(){    if(!navigator.cooki ...

  8. [JavaEE笔记]Cookie

    引言 由于 Http 是一种无状态的协议,服务器单从网络连接上无从知道客户身份. 会话跟踪是 Web 程序中常用的技术,用来跟踪用户的整个会话.常用会话跟踪技术是 Cookie 与 Session. ...

  9. Cookie和Session的区别

    前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...

随机推荐

  1. 使用transform实现手风琴布局

  2. php或js判断网站访问者来自手机或者pc端源码

    很多时候也可以通过逻辑程序来进行判断,如PHP.JS是常用的两种识别访问设备类型的常用方法. 原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键字匹配进行确定设备类型,对于伪造H ...

  3. php 常面试

    问题:请用最简单的语言告诉我PHP是什么? 回答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言. 问题:什么是MVC? 回答:MVC由Model(模 ...

  4. 第一百六十四节,jQuery,常规选择器

    jQuery,常规选择器 学习要点: 1.简单选择器 2.进阶选择器 3.高级选择器 jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元 素的标签名.属性名. ...

  5. 检测手机中是否安装了google地图,没有则提示安装,并跳转到地图查找特定的地点

    /** * 检测手机中是否安装了某个特定的app,若没有提示安装 */ PackageInfo name_2 = null; try { // 若没有这个包名会异常 name_2 = getPacka ...

  6. 相对定位position: relative;

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 5-1、easyUI-菜单与按钮(上节问题与解决)

    首先把上节的代码copy过来,如下: <html> <head> <meta http-equiv="Content-Type" content=&q ...

  8. APP https抓包

    一.软件准备 charles 安卓模拟器(windows系统用逍遥模拟器,mac os 用夜神安卓模拟器) Xposed的apk安装包(安装到模拟器上),地址:http://repo.xposed.i ...

  9. Unity3d 重力感应

    Input.acceleration 加速度 最近一次测量的设备在三维空间中的线性加速度(只读); void Update () { v3=Input.acceleration; } void OnG ...

  10. ADO.NET详细学习笔记《一》

    目录 ADO.NET和ADO的区别 ADO.NET的五大核心对象 Connection对象 Command对象 DataAdapter对象,DataSet对象 DataReader对象 [1]ADO. ...