HTTP Cookie
来源:互联网 发布:淘宝卖家手机端装修 编辑:程序博客网 时间:2024/05/26 07:28
前言
因为转前端时间短,而且之前做的项目都没有相关需求,所以并没有接触到Cookie。(前面的理由都是扯淡,没看过没学过还很菜才是主要原因)。
但最近有个项目需要对Cookie有些了解,所以只能上网自学补充了。然而用百度搜索出来的文章,基本都是长篇大论Cookie与Session的理论,而且大多都是重复的文章。并没有实际使用的详细讲解,所以只能自己摸索着来了。
1 什么是Cookie
我们常说的Cookie,是保存在浏览器上的一块数据。我们知道浏览器是无法访问客户端设备存储的数据,而有时又需要存储一些数据供页面使用,此时就需要用到Cookie来保存这些数据。网上很多关于Cookie的文章,关于理论方面很多前辈都已写过,我就不献丑了,更多详细介绍可参考MDN-Cookie,这篇博客主要简单列出Cookie要点,以及详细的实际使用。
2 一些要点
- 浏览器的Cookie实际是存储在计算机硬盘上,win系统中Chrome的Cookie保存在
C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Cookies
文件中。 - 在浏览器中发起ajax请求时,无论使用jQuery还是原生XMLHttpRequest,无论是GET还是POST,浏览器都会自动携带Cookie并随请求一并发送至服务器,所以会增加一些额外的性能负担。
- 服务器向浏览器发送Cookie时,使用
Set-Cookie
响应头。 - 浏览器向服务器发送Cookie时,使用
Cookie
请求头。
3 使用Cookie开发
在浏览器中:
1. 在浏览器中通过document.cookie
获取或设置Cookie
2. Cookie是一个键值对形式的格式化过的字符串,多个键值对通过分号隔开。
// 设置cookielet cookie = 'username=qq451354;sessid=abc;sex=man'document.cookie = cookie// 读取cookielet cookie = document.cookieconsole.log(cookie) // 'username=qq451354;sessid=abc;sex=man'
cookie的其他属性
- 以下可选的cookie属性值可跟在键值对后,用力具体化对cookie的设定/更新,使用分号作分隔。
- ;path=path (e.g. ‘/’, ‘/mydir’) 如果没有定义,默认为当前文档位置的路径。
- ;domain=domain (e.g. ‘example.com’, ‘.example.com’(包括所有子域名), ‘subdomain.example.com’) 如果没有定义,默认为当前文档位置的路径的域名部分。
- ;max-age=max-age-in-seconds(e.g. 一年为60*60*24*365)
- expires=data-in-GTMString-format (日期格式参见Date.toUTCString)如果没有定义,cookie会在会话结束时过期。
- cookie的值字符串可以用encodeURIComponent()来保证它不包含任何都好、分号或者空格(cookie值中禁止使用这些值)
cookie读取/写入库
参考MDN - document.cookie
3.1 两种Cookie
会话期Cookie
1. 会话期Cookie即浏览器关闭后自动删除的Cookie。
2. 不指定过期时间(Expires)或有效期(Max-Age)的Cookie即为Cookie。
持久Cookie
1. 持久Cookie可指定一个过期时间(Expires)或有效期(Max-Age)。
2. 关闭浏览器对持久Cookie无影响,只根据设置的过期时间或有效期决定是否删除。
阅读全文
0 0
- HTTP cookie
- HTTP cookie
- http cookie
- http cookie
- HTTP cookie
- HTTP-cookie
- http Cookie
- HTTP Cookie
- Http Cookie
- HTTP Cookie
- http cookie
- HTTP Cookie
- HTTP Cookie
- http cookie、flash cookie、evercookie
- HTTP中的Cookie
- HTTP的cookie处理
- HTTP 协议 Set-Cookie
- HTTP Cookie & Session
- linux下自创网络编程聊天室(4)改进两点
- 数论--几何--笛卡尔原理
- 《linux设备驱动开发详解》中支持阻塞操作的globalfifo设备驱动
- C++中std::stringstream类型对象如何清除
- 51nod 1050 循环数组最大子段和
- HTTP Cookie
- 汇编语言入门四:打通C和汇编语言
- 添加一个页面覆盖
- 8月19日TMS开发笔记
- 组合数取模(0)
- Csharp进阶:非泛型集合
- POJ
- lnmp下redis服务的安装
- PHP基础教程-26 链接PHP文件