大白话理解cookie
Cookie由来
HTTP协议是一个无状态的协议,服务器无法区分出两次请求是否发送自同一服务器。
需要通过会话控制来解决这个问题,会话控制主要有两种方式Cookie和Session。
Cookie是什么
Cookie就是一个头,Cookie由服务器创建,服务器以响应头的形式发送给客户端,
客户端收到Cookie以后,会将其自动保存,在下次向服务器发送请求时会自动将Cookie以请求的形式发出,
服务器收到以后就可以检查请求头中的Cookie并且可以根据Cookie中的信息来识别出不同的用户。
Cookie机制
简言之,
服务端通过 Set-Cookie 响应头来向客户端设置 Cookie。
客户端通过 Cookie 请求头向服务端发送之前存储的 Cookie 数据。

Cookie属性
| 属性 | 解释 |
| name=value | 键值对,设置要保存的 Key-Value |
| expires | 过期时间,在设置的某个时间点后该 Cookie 就会失效。注:expires 时间要转成GMT形式,即 toGMTString(); |
| domain | 域名,指发出 HTTP 请求时,哪些域名要附带这个 Cookie。 |
| path | 路径,指该 Cookie 是在当前的哪个路径下生成的,如PATH属性是/,那么请求/docs路径也会包含该 Cookie。 |
| secure |
表示cookie发送到http或https请求。 值为0或1, 默认值为 0,cookei在http和https连接上都有效。 值为1,则cookie只在https连接上有效。 |
| httponly |
设置HttpOnly属性,那么通过js脚本将无法读取到cookie信息(仅出现在请求头),能有效的防止XSS攻击。 此时若想修改Cookie ,只能通过服务器端修改,即document.cookie 凡是httpOnly类型的cookie,其 HTTP 一列都会打上√ |
操作Cookie
具体操作:设置、读取、删除cookie
- 创建document.cookie=‘key=value; key1=value2’
- 读取var x = document.cookie
- 修改(进行覆盖)document.cookie=‘newkey=newvalue; newkey1=newvalue2’
- 删除(设置过期时间expires )document.cookie = "key=value’; expires=Thu, 01 Jan 1970 00:00:00 GMT";
function setCookie(name, value,days) {
var exp = new Date();
//setTime() 方法以毫秒设置,向 1970/01/01 添加毫秒,并显示新的日期和时间。
exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
//toGMTString格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString();
}
大白话理解cookie的更多相关文章
- 转:理解Cookie和Session机制
原文: 理解Cookie和Session机制 摘要: Cookie工作原理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论 ...
- 理解Cookie和Session机制
转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...
- 形象地理解Cookie和Session
Cookie和Session的形象理解 通过实际生活中的银行卡来理解Cookie和Session间的关系: Cookie相当于银行卡 Session相当于银行账户 结合到银行存钱和取钱的过程来理解: ...
- 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
- 基础知识《十二》一篇文章理解Cookie和Session
理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定 ...
- 深入理解Cookie和Session机制
转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...
- 理解Cookie与Session
HTTP本身是无状态的. 这符合HTTP协议设计的目的.客户端只是简单地向服务器请求某种资源.两者都没有必须记录彼此过去的行为,每一次请求之间都是独立的. 为了保存状态.在客户端使用Cookie,在S ...
- 理解cookie,session,token
彻底理解cookie,session,token 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新 ...
- [转帖]彻底理解cookie,session,token
彻底理解cookie,session,token https://www.cnblogs.com/moyand/p/9047978.html 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已 ...
随机推荐
- 数据结构与算法(5) -- deque
vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间.所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作.stl中deque与vector最大的差异,一在于dequ ...
- auto类型推导
引言 auto : 类型推导. 在使用c++的时候会经常使用, 就像在考虑STL时迭代器类型, 写模板的时候使用auto能少写代码, 也能帮助我们避免一些隐患的细节. auto初始化 使用auto型别 ...
- 熟悉RHEL7登录界面使用
Linux操作系统提供了图像界面和字符界面两种操作环境. 图像界面: 1.开启RHEL7后进入到该界面,图中用户是我们创建的本地用户,如果我们要以管理员身份登录则点击Not listed(未列出). ...
- Git:分支的创建、合并、管理和删除
了解分支 如果想实现多人协作.划出Bug区.Feature区等功能,就需要分支功能.(确实很强大的地方) 每次commit时,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条 ...
- 7.1.2 Python 内置异常类层次结构
这一节就是拿来主义了,连接:https://blog.csdn.net/Karen_Yu_/article/details/78629918 异常名称 描述 BaseException 所有异常的基类 ...
- scrapy——7 scrapy-redis分布式爬虫,用药助手实战,Boss直聘实战,阿布云代理设置
scrapy——7 什么是scrapy-redis 怎么安装scrapy-redis scrapy-redis常用配置文件 scrapy-redis键名介绍 实战-利用scrapy-redis分布式爬 ...
- 用循环链表实现Josephus问题
Josephus问题:设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列.如此反复直到所有的人全部出列为止. 思路:构建一个没有 ...
- 233 Matrix 矩阵快速幂
In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...
- V - 吉哥系列故事――完美队形I Manacher
吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要 ...
- iOS中UITextView的操作技巧
刚才看了一篇textView实现placeholder的文章,有兴趣的同学们能够看下:__biz=MzA3NzM0NzkxMQ==&mid=211846438&idx=1&sn ...