最新更新时间:2019年1月21日15:42:17
《猛戳-查看我的博客地图-总有你意想不到的惊喜》
本文内容:cookie相关
概述
cookie知识点虽然在前端开发过程中用的非常少,但是在面试中常被问到,本文在之前的一片文章《前端开发-Web存储》基础上,做进一步深入讨论。
cookie相关
一个浏览器能创建的 Cookie 数量最多为 300 个,并且每个不能超过 4KB,每个 Web 站点能设置的 Cookie 总数不能超过 20 个
Cookie跨域无法访问和获取
cookie 属性
查看百度网站的cookie,进入www.baidu.com站点,依次进入:chrome-开发者工具-Application-Cookies,可以看到9大属性如下
Name | Value | Domain | Path | Expires/Max-Age | Size | HTTP | Secure | SameSite |
---|---|---|---|---|---|---|---|---|
BAIDUID | 7604C9F86… | .baidu.com | / | 2019-12-06T08:12:47.282Z | 44 | - | - | - |
BDUSS | 1c3QWZTRHJPe… | .baidu.com | / | 2027-03-26T08:13:41.718Z | 197 | √ | - | - |
查看csdn网站的cookie
Name | Value | Domain | Path | Expires/Max-Age | Size | HTTP | Secure | SameSite |
---|---|---|---|---|---|---|---|---|
UserInfo | 476b419… | .csdn.net | / | 2019-02-01T07:09:40.922Z | 40 | √ | - | - |
UserNick | FEBruce | .csdn.net | / | 2019-02-01T07:09:40.922Z | 15 | - | - | - |
进入csdn网站,看到控制台Application-Cookies有很多个kv,Domain包含5个:blog.csdn.net | .csdn.net | .baidu.com | .hm.baidu.com | .iteye.com。但通过document.cookie只能获取 blog.csdn.net 和 .csdn.net的kv,也就是说document.cookie只能获取二级域名下面的所有cookie
总结:document.cookie不能获取httponly的cookie,也不能获取domain以外的cookie
属性详解
- Name:cookie名称
- Value:cookie的值
- Domain:可以访问此cookie的域名
- Path:可以访问此cookie的页面路径。比如domain是 wanshaobo.com,path是/info,那么只有/info路径下的页面可以读取此cookie。
- Expires/Max-Age:cookie过期时间。未设置的话,当浏览器关闭(不是标签页关闭),cookie自动失效。设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie。
- Size:cookie的大小,单位kb
- HTTP:cookie的httponly属性。若为true,只在http请求头中携带该kv,document.cookie无法获取
- Secure:是否只能通过https来传递此条cookie
- SameSite:Strict/Lax,Strict 严格模式,任何情况下都不可能作为第三方 cookie。Lax 宽松模式,可以作为第三方 cookie。
cookie用途
存储用户在特定网站上的密码和 ID
cookie工作原理
浏览器首次向服务器发起请求,cookie通过HTTP Headers从服务器端返回到浏览器上,在浏览器端第二次请求的时候,会携带上次的受到的cookie
扩展-域名
域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
通用顶级域名 | 国家代码顶级域名 | 二级域名 | 三级域名 |
---|---|---|---|
.com | .cn | wanshaobo.com | api.wanshaobo.com |
.cn | .us | baidu.com | job.wanshaobo.com |
.net | .uk | ali.com | img.wanshaobo.com |
.org | .jp | tecent.com | mall.wanshaobo.com |
注意:
- 一级域名又被称为顶级域名
- wanshaobo.com中,二级域名是wansahobo
- .com.cn/.edu.cn等称为二级域
- api.wanshaobo.com中,三级域名是api
参考资料
- 无
感谢阅读,欢迎评论^-^