Http 请求头Cookie,响应头Set-Cookie

2024-09-02 19:48
文章标签 http 请求 set 响应 cookie

本文主要是介绍Http 请求头Cookie,响应头Set-Cookie,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • Cookie
  • Set-Cookie
    • 属性
    • Example

Cookie

Http请求头
由服务器使用set-Cookie头发送,或者在Javascript中使用document.cookie设置

语法

Cookie: name=value; name2=value2; name3=value3

Set-Cookie

Http响应头
用于从服务器向用户代理发送cookie,然后浏览器会将数据设置给下次请求的Cookie请求头,返回服务器session功能的类似实现
可以设置多个Set-Cookie在相同的Http响应中

语法

Set-Cookie: <cookie-name>=<cookie-value>
Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit>
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>
Set-Cookie: <cookie-name>=<cookie-value>; Path=<path-value>
Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnlySet-Cookie: <cookie-name>=<cookie-value>; SameSite=Strict
Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax
Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None; Secure// Multiple attributes are also possible, for example:
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly

属性

  • <cookie-name>=<cookie-value>
    US-ASCII 字符, 除了control characters, spaces, 或tabs。还不能包括下面分分割符( ) < > @ , ; : \ " / [ ] ? = { }
    Cookie名称开始的前缀是**__secure-时,必须要设置HTTPS的flagsecure
    Cookie名称开始的前缀是
    __Host-**时,必须要设置HTTPS的flagsecure,不能指定域,path必须是/
  • Expires=<date>
    Cookie作为HTTP日期时间戳的最大生存期,参考Date对象
    未设置的时候cookie变成了session cookie(session的实现),会话在客户端关闭时结束,session cookie将被删除。
    许多浏览器有 session restore 功能,保存session cookie,下次使用的时候session cookie会被还原。
    设置到期日期时,截止日期相对于正在设置cookie的客户端,而不是服务器。
  • Max-Age=<number>
    直到cookie过期的秒数。零或负数将立即过期cookie。如果两者都已到期,并且设置了Max-Age,则Max-Age优先
  • Domain=<domain-value>
    将cookie发送到的主机
    • 如果省略,默认为当前文档URL的主机,不包括子域
    • 不允许多个主机/域值,但如果指定了域,则始终包括子域
  • Path=<path-value>
    请求的URL中必须存在的路径,否则浏览器将不发送Cookie报头
    正斜杠(/)字符被解释为目录分隔符,子目录也将匹配:对于path=/docs,/docs/web/,和/docs/web/HTTP都将匹配
  • Secure
    Cookie只在使用https:(本地主机除外)发出请求时才发送到服务器,因此更能抵抗中间人的攻击
    • 不要假设安全会阻止所有对cookie中敏感信息(会话密钥、登录详细信息等)的访问。带有此属性的cookie仍然可以通过访问客户端的硬盘来读取/修改,如果没有设置HttpOnly cookie属性,则可以从JavaScript读取/修改Cookie
    • 不安全站点(http:)不能使用安全属性设置cookie
  • HttpOnly
    设置了 HttpOnly 属性的 cookie 不能使用 JavaScript 经由 Document.cookie 属性、XMLHttpRequest 和 Request APIs 进行访问,以防范跨站脚本攻击(XSS)。请注意,使用HttpOnly创建的cookie仍将与JavaScript启动的请求一起发送。
  • SameSite=<samesite-value>
    控制cookie是否与跨源请求一起发送,从而提供一些防范跨站点请求伪造攻击(Csrf)的保护
    属性值
    • Lax
      Cookie不是在跨站点请求(如对加载图像或帧的调用)上发送的,而是在用户从外部站点导航到源站点时发送的。
    • Strict
      浏览器只为同一站点请求(即来自设置cookie的同一站点的请求)发送cookie。如果请求来自与当前URL不同的URL,则不会发送带有SameSite=Strength属性的cookie。
    • None
      浏览器发送带有跨站点请求和相同站点请求的cookie。当SameSite=None时,还必须设置安全属性!

Example

Session cookie
Session cookies are removed when the client shuts down. Cookies are session cookies if they don’t specify the Expires or Max-Age attributes.

Set-Cookie: id=sada78dad

这篇关于Http 请求头Cookie,响应头Set-Cookie的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130899

相关文章

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求