作者:zccst
Cookie 高级篇
一.cookie 路径概念
在基础知识中有提到 cookie 有域和路径的概念,现在来介绍路径在 cookie 中的作用。
cookie 一般都是由于用户访问页面而被创建的,可是并不是只有在创建 cookie 的页面才可以访问这个 cookie。
默认情况下,只有与创建 cookie 的页面在同一个目录或子目录下的网页才可以访问,这个是因为安全方面的考虑,造成不是所有页面都可以随意访问其他页面创建的 cookie。举个例子:
在 "http://www.cnblogs.com/Darren_code/" 这个页面创建一个cookie,那么在"/Darren_code/"这个路径下的页面如: "http://www.cnblogs.com/Darren_code/archive/2011/11/07/Cookie.html"这个页面默认就能取到cookie信息。
可在默认情况下, "http://www.cnblogs.com"或者 "http://www.cnblogs.com/xxxx/" 就不可以访问这个 cookie(光看没用,实践出真理^_^)。
那么如何让这个 cookie 能被其他目录或者父级的目录访问类,通过设置 cookie 的路径就可以实现。例子如下:
document.cookie = "name=value;path=path"
document.cookie = "name=value;expires=date;path=path"
红色字体path就是 cookie 的路径,最常用的例子就是让 cookie 在跟目录下,这样不管是哪个子页面创建的 cookie,所有的页面都可以访问到了:
document.cookie = "name=Darren;path=/"
二.cookie 域概念
路径能解决在同一个域下访问 cookie 的问题,咱们接着说 cookie 实现同域之间访问的问题。语法如下:
document.cookie = "name=value;path=path;domain=domain"
红色的domain就是设置的 cookie 域的值。
例如 "www.qq.com" 与 "sports.qq.com" 公用一个关联的域名"qq.com",我们如果想让 "sports.qq.com" 下的cookie被 "www.qq.com" 访问,我们就需要用到 cookie 的domain属性,并且需要把path属性设置为 "/"。例:
document.cookie = "username=Darren;path=/;domain=qq.com"
注:一定的是同域之间的访问,不能把domain的值设置成非主域的域名。
三.cookie 安全性
通常 cookie 信息都是使用HTTP连接传递数据,这种传递方式很容易被查看,所以 cookie 存储的信息容易被窃取。假如 cookie 中所传递的内容比较重要,那么就要求使用加密的数据传输。
所以 cookie 的这个属性的名称是“secure”,默认的值为空。如果一个 cookie 的属性为secure,那么它与服务器之间就通过HTTPS或者其它安全协议传递数据。语法如下:
document.cookie = "username=Darren;secure"
把cookie设置为secure,只保证 cookie 与服务器之间的数据传输过程加密,而保存在本地的 cookie文件并不加密。如果想让本地cookie也加密,得自己加密数据。
注:就算设置了secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息,所以说到底,别把重要信息放cookie就对了,囧...
四.cookie 编码细节
原本来想在常见问题那段介绍cookie编码的知识,因为如果对这个不了解的话编码问题确实是一个坑,所以还是详细说说。
在输入cookie信息时不能包含空格,分号,逗号等特殊符号,而在一般情况下,cookie 信息的存储都是采用未编码的方式。所以,在设置 cookie 信息以前要先使用escape()函数将 cookie 值信息进行编码,在获取到 cookie 值得时候再使用unescape()函数把值进行转换回来。如设置cookie时:
document.cookie = name + "="+ escape (value)
再看看基础用法时提到过的getCookie()内的一句:
return unescape(document.cookie.substring(c_start,c_end))
这样就不用担心因为在cookie值中出现了特殊符号而导致 cookie 信息出错了。
分享到:
相关推荐
cookie设置插件jquery.cookie.min.js 文章《javascript设置cookie高级篇可跨域访问》https://blog.csdn.net/cplvfx/article/details/117822956
本篇将深入探讨如何使用C#来创建、设置、读取和管理Cookie。 首先,Cookie是由服务器端发送到用户浏览器并存储在本地的小型文本文件。它们主要用于跟踪用户会话、保存用户偏好设置以及在无状态的HTTP协议中维护用户...
这篇博客“JS Cookie的操作”将深入探讨如何利用JavaScript进行Cookie的创建、读取和删除,以及一些相关的实用技巧。 一、Cookie的基本概念 Cookie是由服务器端设置并发送到客户端(浏览器)的一小段文本信息,...
总的来说,这篇"获取Cookie"的博文可能涵盖了从基本的Cookie机制到高级的Web开发应用场景,包括爬虫中的Cookie处理和自动化测试中的技巧。通过学习这些内容,开发者可以更好地控制和利用Cookie,提升其Web应用的用户...
### JavaScript基础篇——浅谈cookie #### 一、引言 在Web开发中,如何保持用户的登录状态或记住用户的一些个性化设置是一个常见的需求。对于这种轻量级的数据存储需求,`cookie`是一种非常实用的技术。它能够帮助...
本篇文章将深入探讨如何使用Volley进行带Cookie和不带Cookie的网络请求。 ### 1. Volley的基础概念 Volley的核心组件包括RequestQueue、Request和NetworkDispatcher。RequestQueue是整个请求的调度中心,负责接收...
本篇文章将详细解析如何在ASP(Active Server Pages)环境中使用Cookie来记录用户的访问次数,并探讨其原理与实现过程。 #### 二、什么是Cookie? Cookie是一种小型的数据文件,由服务器发送到客户端(通常是用户...
【描述】提到的“我把csdn上的cookie的资料都下来看了一遍,整理好了”,意味着这个压缩包可能包含了多篇博客文章、讨论帖、代码示例,甚至可能有相关的问答和教程,所有这些内容都是关于如何理解和运用Cookie的。...
本篇文章将深入探讨Express中Cookie的基础使用方法,包括设置、读取和管理Cookie。 首先,让我们理解什么是Cookie。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。...
### 反病毒教程(高级篇)第11课:系统盘无用文件清理详解 #### 一、引言 在日常计算机使用过程中,系统盘(通常为C盘)上会积累大量的无用文件,这些文件不仅占用宝贵的硬盘空间,还可能导致系统运行缓慢。因此,...
此外,WKWebView还支持通过WKWebViewConfiguration的websiteDataStore属性和WKUserContentController进行更高级的Cookie管理,包括在页面加载前后设置Cookie,以及通过WKWebView的代理方法拦截和处理HTTP请求,从而...
下卷高级篇则深入探讨PHP的进阶主题: 1. PHP性能优化:如何通过缓存技术(如APC、Memcached、Redis)提升网站性能,以及代码优化技巧。 2. PHP框架与开发模式:介绍常见PHP框架(如Laravel、Symfony、Yii等),...
总之,C#网络编程高级篇之网页游戏辅助程序设计涵盖了网络通信、数据解析、异步编程、游戏逻辑模拟等多个方面。通过深入学习和实践这些知识点,开发者可以创建出高效、稳定的网页游戏辅助工具,满足玩家的各种需求。
【JAVA面试题从基础到高级篇】 一、Java基础知识 1. Java有八种基本数据类型:byte, short, int, long, float, double, char, boolean。String不是基本数据类型,而是一个对象,它是java.lang.String类的实例。基本...
- **Cookie调用**:可以通过`HttpServletRequest`对象的`getCookies()`方法来获取Cookie,通过`HttpServletResponse`对象的`addCookie()`方法来添加Cookie。 **Q2.18 怎么在JSP里面实现文件下载?** - **文件下载...
本教程的“高级应用篇”会带你进入更复杂的Web开发领域。比如,你将学习如何使用PHP进行文件操作,包括上传和下载文件,以及处理图像。你还将接触Web框架,如Laravel或CodeIgniter,这些框架可以极大地提高开发效率...
对于更高级的应用,也可以考虑将计数逻辑放到服务器端进行,利用服务器上的会话(Session)数据来跟踪访问次数,从而避免客户端浏览器禁用cookie的问题。 总结来看,本文通过一个简单的PHP和cookie实现的计数器示例...
关于“python与sqlite3实现解密chrome cookie实例代码”,本篇内容重点讲解如何使用Python语言结合sqlite3数据库以及加密解密知识来获取和解密Chrome浏览器中的cookie信息。由于Chrome的cookie数据采用AES加密算法,...
本篇将详细介绍如何利用PHP的cURL库添加cookie来实现这个功能。 cURL是客户端URL处理库,它允许PHP通过多种协议(如HTTP、FTP等)与远程服务器进行通信。通过设置cURL选项,我们可以控制请求的各个方面,包括添加...