IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器cookie描述、属性解决、使用方法、特点总结以及注意事项 -> 正文阅读

[网络协议]浏览器cookie描述、属性解决、使用方法、特点总结以及注意事项

描述

每个 Cookie 都有以下几方面的元数据。

key=value;expires=Wed, 21 Oct 2015 07:28:00 GMT;max-age=23456523456;domain=.example.com;path=/
  • Cookie 的名字
  • Cookie 的值(真正的数据写在这里面)
  • 到期时间(超过这个时间会失效)
  • 所属域名(默认为当前域名)
  • 生效的路径(默认为当前网址)

属性

Expires

  • Expires指定一个具体的到期时间(UTC),到了指定时间以后,浏览器就不再保留这个 Cookie
  • 如果不设置该属性,或者设为null,Cookie 只在当前会话(session)有效,浏览器窗口关闭,当前 Session 结束,该 Cookie 被删除
  • 浏览器根据本地时间,决定 Cookie 是否过期,由于本地时间是不精确的,所以没有办法保证 Cookie 一定会在服务器指定的时间过期。

Domain

  • 指定 Cookie 属于哪个域名
  • 如果没有指定 Domain 属性,浏览器会默认将其设为浏览器的当前域名。如果当前域名是一个 IP 地址,则不得设置 Domain 属性。
  • Domain 属性只能是当前域名或者当前域名的上级域名,不能设为顶级域名或公共域名

Path

  • 指定浏览器发出 HTTP 请求时,哪些路径要附带这个 Cookie

Secure

  • 指定浏览器只有在加密协议 HTTPS 下,才能将这个 Cookie 发送到服务器
  • 如果当前协议是 HTTP,浏览器会自动忽略服务器发来的Secure属性。

HttpOnly

  • 指定该 Cookie 无法通过 JavaScript 脚本拿到

SameSite

  • 用来防止 CSRF 攻击和用户追踪。

Max-Age

  • 指定从现在开始 Cookie 存在的秒数
  • 如果同时指定了Expires和Max-Age,那么Max-Age的值将优先生效
  • 如果不设置该属性,或者设为null,Cookie 只在当前会话(session)有效,浏览器窗口关闭,当前 Session 结束,该 Cookie 被删除

特点

  • Cookie 是服务器保存在浏览器的一小段文本信息
  • 一般大小不能超过4KB
  • 浏览器每次向服务器发出请求,就会自动附上这段信息。
  • 用户可以设置浏览器不接受 Cookie,也可以设置不向服务器发送 Cookie
    window.navigator.cookieEnabled
    
  • Cookie 是按照域名区分的,只能读取自己放置的 Cookie。设置 Cookie 的时候(不管是一级域名设置的,还是二级域名设置的),明确将domain属性设为一级域名,则这个域名下面的各级域名可以共享这个 Cookie。
  • 区分 Cookie 时不考虑协议和端口
  • 服务器收到浏览器发来的 Cookie 时,有两点是无法知道的。
    1. Cookie 的各种属性,比如何时过期。
    2. 哪个域名设置的 Cookie,到底是一级域名设的,还是某一个二级域名设的。

使用

document.cookie

  • 它会返回当前网页的所有 Cookie,HTTPOnly属性除外。(只能获取到key和value,其他的属性获取不到)
  • 写入 Cookie 的时候,必须对分号、逗号和空格进行转义
  • 一次只能写入一个 Cookie,而且写入并不是覆盖,而是添加。
  • 删除一个现存 Cookie 的唯一方法,是设置它的expires属性为一个过去的日期

注意

一般来说,单个域名设置的 Cookie 不应超过30个,每个 Cookie 的大小不能超过 4KB。超过限制以后,Cookie 将被忽略,不会被设置。

document.cookie读写行为的差异(一次可以读出全部 Cookie,但是只能写入一个 Cookie),与 HTTP 协议的 Cookie 通信格式有关。浏览器向服务器发送 Cookie 的时候,Cookie字段是使用一行将所有 Cookie 全部发送;服务器向浏览器设置 Cookie 的时候,Set-Cookie字段是一行设置一个 Cookie。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:20:11  更:2022-04-18 18:23:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:24:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码