首页 > 其他分享 >cookie

cookie

时间:2023-06-16 18:33:59浏览次数:34  
标签:浏览器 请求 发送 字段 Cookie cookie

1、介绍

http本身是无状态的,但实际业务中往往需要http请求表明请求者的身份和状态等信息,cookie是该问题的一种解决方案。(另外的包括session、token、浏览器localstorage)

  • cookie本质是一个对象,具有name、value等属性。
  • 一般由服务端创建,然后基于响应头部的set-cookie字段发送给浏览器。
  • 浏览器接收cookie后,保存
  • 当浏览器再次待发送目标域的请求时,会基于请求头部的cookie字段携带保存的cookie
  • 服务端接收请求,读取头部字段的cookie,以获取状态信息

2、cookie属性

默认值,是如果一个cookie只设置部分属性,那么浏览器会自动将其余属性设置为默认值。

(1)name

cookie的名称

(2)value

cookie的值

(3)domain

作用的域名范围,在对应域名及子域名的请求时,携带cookie

(4)path

作用的路径范围,在对应路径及子路径的请求时,携带cookie

(5)expires

  • 如果未设置,则该cookie属于会话cookie,在浏览器关闭时销毁
  • 如果设置了一个还未到达的时间点,则该cookie为存储cookie,直到到达限制时间销毁。关闭浏览器再开启,无影响
  • 如果设置了一个过期的时间,相当于告诉浏览器直接删除该cookie

(6)HttpOnly

具有该标志的cookie只能由请求携带,而不能被js读取

(7)Secure

具有该标志的cookie只能由https请求携带,而http无法携带

(8)samesite

  • strict:严格,完全禁止跨域携带cookie
  • Lax: 大多数情况下禁止跨域携带cookie,除非导航到目标网址的GET请求(链接、预加载、GET表单)

SameSite属性的默认SameSite=Lax 【该操作适用于2019年2月4号谷歌发布Chrome 80稳定版之后的版本】

请求类型    示例    正常情况    Lax
链接    <a href="..."></a>    发送 Cookie    发送 Cookie
预加载    <link rel="prerender" href="..."/>    发送 Cookie    发送 Cookie
GET 表单    <form method="GET" action="...">    发送 Cookie    发送 Cookie
POST 表单    <form method="POST" action="...">    发送 Cookie    不发送
iframe    <iframe src="..."></iframe>    发送 Cookie    不发送
AJAX    $.get("...")    发送 Cookie    不发送
Image    <img src="...">    发送 Cookie    不发送
  • None: 没有限制

必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。 【该操作适用于2019年2月4号谷歌发布Chrome 80稳定版之后的版本】

3、Set-Cookie字段

向浏览器设置服务端创建的cookie,一个cookie对应一个Set-Cookie字段,一个响应中可以同时有多个Set-Cookie字段。

set-cookie: test_cookie=CheckForPermission; expires=Thu, 20-Oct-2022 06:51:46 GMT; path=/; domain=.doubleclick.net; Secure; HttpOnly; SameSite=none
set-cookie: test_cookie=CheckForPermission; expires=Thu, 20-Oct-2022 06:51:46 GMT; path=/; domain=.doubleclick.net; Secure; SameSite=none

4、浏览器存储

所有浏览器都支持查看保存的cookie,F12》应用程序》选择cookie,并且可以直接进行操作。

5、Cookie字段

向服务端表示符合的cookie。

只有满足各属性完全符合才会携带,在请求中只有一个Cookie字段,多个cookie之间用;分割,cookie只携带name和value属性,用=连接。

Cookie: wordpress=rofdd; wp-settings-time-1=16662dd; wp-settings-1=abc

6、浏览器与cookie安全策略

7、cookie长度限制

COOKIE长度限制总结 - 简书 (jianshu.com)

  • http报文最大长度限制
  • 浏览器能够同时存储的cookie条数限制
  • 单个cookie所能够包含的字节限制

8、其它

  • html设置cookie
  • js读取和设置cookie
  • java读取和设置cookie
  • php读取和设置cookie

标签:浏览器,请求,发送,字段,Cookie,cookie
From: https://www.cnblogs.com/wd404/p/17486264.html

相关文章

  • 页面会话技术介绍,什么是Cookie和Session
    页面会话技术Cookie什么是cookie:服务端保存在浏览器端的数据片段。以key/value的形式进行保存。每次请求的时候,请求头会自动包含本网站此目录下的cookie数据。网站经常使用这个技术来识别用户是否登陆等功能。用途:保存登录状态,购物车等缺点:做为请求或响应报文发送,无形中......
  • Log in Leetcode in Vscode With Cookies" #标题
    Installleetcodeplug-ininvscodeIt'seasybysearchinExtension.LoginwithcookiesIfyouwanttologinleetcodeinvscodeleetcodeplug-inbygithubaccount,theremaybebugsthatyoucan'ttestorsubmit.Butifyousigninwithcookies......
  • Vscdoe 通过cookie 登陆美区 LeetCode
    安装插件vscode安装leetcode插件。使用cookie登陆如果选择使用github登陆leetcode.com,似乎会有无法提交和测试的bug,而用cookie登陆就没有这个问题使用edge获取cookie使用Firefox获取的cookie有问题,无法正常登陆右键,选择检查选择网络打开leetcode的problem页面下滑找到......
  • XSS cookie伪造攻击
    环境系统:windows7靶场:DVWA场景:chrome对firefox的个人cookie盗用伪造IP:192.168.98.128端口:未占用的任意端口实施1.首先确保firefox登录状态,即存在cookie2.构造获取cookie的js请求脚本<script>document.write('<imgsrc="url'+document.coo......
  • Session 与 Cookie
    评:HTTP协议(超文本传输协议)是无状态的,不能保存客户端与服务器之间通讯(交互)的信息。打个比方,拿最常见的登录来说,现在好多网站的操作都需要用户登录,假如在a操作时,用户成功登录系统,再进行b操作时,由于HTTP协议是无状态的,用户之前登录的信息并没有被......
  • [ABC305C] Snuke the Cookie Picker题解
    题目大意有一个\(H\timesW\)的网格,一种有一个矩形,矩形中间有一个点被挖空,求这个点的坐标。(.表示空白,#表示矩形内的点)解析观察我们可以发现,每一矩形内的个点上下左右至少会有两个是#。如图:而每一个在矩形外的点上下左右最多只有一个#。所以我们只需要找的一个.的上......
  • Java 实战介绍 Cookie 和 Session 的区别
    HTTP是一种不保存状态的协议,即无状态协议,HTTP协议不会保存请求和响应之间的通信状态,协议对于发送过的请求和响应都不会做持久化处理。无状态协议减少了对服务压力,如果一个服务器需要处理百万级用户的请求状态,对服务器的压力无疑的是巨大的。无状态的HTTP由于其简单和易用性......
  • 数据存储的两种方式:cookie和webStorage存储
    一、sessionstorage(会话存储)1、添加数据:SessionStorage.setItem('key','value');该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。2、获取数据:SessionStorage.getItem('key');该方法接受一个键名作为参数,返回键名对应的值。如果获取不到......
  • vue之elementui使用, vuex使用, Router使用, localstorage和sessionstorage,和cookie
    目录一、elementui使用下载插件vue界的ui库二、vuex的使用1.概念2.何时使用?3、使用步骤:三、Router使用1简单使用2组件中实现页面跳转3路由跳转时,可以使用对象4this.router的一些方法四、多级路由五、路由守卫和两种工作模式路由守卫路由器的两种工作模式六、localstorage和se......
  • cookie 和session的区别
    1、对象不同cookie:是针对每个网站的信息,每个网站只能对应一个,其他网站无法访问,这个文件保存在客户端,每次您拨打相应网站,浏览器都会查找该网站的cookies,如果有,则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。session:是针对每个用户的,只有客......