当 cookie 通过 http header 发送到浏览器时,它会被添加到客户端浏览器吗?

2024-04-09

我正在尝试与 API 建立连接。当我调用此 API 的方法时,它会使用通过 HTTP 标头发送的 cookie 值进行响应。

这个标头会自动添加到客户端“我的浏览器”吗?或者我必须先解析请求并使用创建 cookiesetCookie?

如果它没有自动添加cookie,有什么办法可以做到吗?


它将由您的 http 客户端自动处理(您无需手动设置)。 服务器应使用 Set-Cookie 标头(而不是 cookie)进行响应,然后客户端将保存该 cookie,并在下一个请求时发送它。

设置cookie

Cookie 是使用 HTTP Set-Cookie 标头设置的,并在 HTTP 响应中发送。此标头指示浏览器存储 cookie 并在将来向服务器发出请求时将其发送回(当然,如果浏览器不支持 cookie 或已禁用 cookie,则浏览器将忽略此标头)。

例如,浏览器将第一个请求发送到 www.example.org 网站的主页:

GET /index.html HTTP/1.1
Host: www.example.org
...

服务器使用两个 Set-Cookie 标头进行响应:

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
...

服务器的 HTTP 响应包含网站主页的内容。但它还指示浏览器设置两个 cookie。第一个“主题”被认为是“会话”cookie,因为它没有 Expires 或 Max-Age 属性。当浏览器关闭时,会话 cookie 通常会被浏览器删除。第二个“sessionToken”包含“Expires”属性,该属性指示浏览器在特定日期和时间删除 cookie。

接下来,浏览器发送另一个请求来访问网站上的spec.html页面。该请求包含一个 Cookie 标头,其中包含服务器指示浏览器设置的两个 cookie。

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: theme=light; sessionToken=abc123
...

这样,服务器就知道该请求与前一个请求相关。服务器将通过发送请求的页面进行应答,并可能使用 Set-Cookie 标头添加其他 cookie。

服务器可以通过包含 Set-Cookie 标头来响应页面请求来修改 cookie 的值。然后浏览器用新值替换旧值。

cookie 的值可以由任何可打印的 ASCII 字符(! 到 ~、unicode \u0021 到 \u007E)组成,不包括 , 和 ;并排除空格。 Cookie 的名称不包括相同的字符以及 =,因为这是名称和值之间的分隔符。 cookie 标准 RFC 2965 限制较多,但浏览器未实现。

术语“cookie crumb”有时用于指 cookie 的名称-值对。

Cookie 还可以通过在浏览器中运行的脚本语言(例如 JavaScript)来设置。在 JavaScript 中,对象 document.cookie 用于此目的。例如,指令 document.cookie = "Temperature=20" 创建名称为“Temperature”、值“20”的 Cookie。

See 维基百科页面 http://en.wikipedia.org/wiki/HTTP_cookie

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 cookie 通过 http header 发送到浏览器时,它会被添加到客户端浏览器吗? 的相关文章

  • 打印表数据mysql php

    我在尝试打印表格的一些数据时遇到问题 我是 php mysql 的新手 但我认为我的代码是正确的 这里是 h1 Lista de usu rios h1
  • 从对象中取出具有无效(NaN、空白等)值的键的最佳方法?

    我有一个供用户填写的简短搜索表单 将有多个搜索查询进入 MongoDB 该表单创建一个名为的变量searchParams可能看起来像这样 var searchParams city Springfield bedrooms 3 bathro
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 如果文件名减去扩展名,.htaccess url 重写行为将被覆盖。与网址相同

    我正在尝试整理 URL 并从中删除 php 扩展名等 我位于网站的基本文件夹中 因此没有可以优先处理的父 htaccess 文件或其他文件 这是我的 htaccess 代码 RewriteEngine On RewriteRule give
  • fadeOut() 和slideUp() 同时进行?

    我已经发现jQuery 淡出然后滑动 https stackoverflow com questions 734554 jquery fadeout then slideup这很好 但不是那个 我怎么能够fadeOut and slideU
  • 为什么函数声明在不同浏览器中的处理方式不同?

    虽然我在谷歌中找不到对此的引用 但我熟悉这样一个事实 在 javascript 中 全局函数声明在执行任何代码之前都会被解释 换句话说 这工作得很好 f function f 但是 我注意到 chrome 和 firefox 对全局函数声明
  • Javascript:我应该隐藏我的实现吗?

    作为一名 C 程序员 我有一个习惯 将可以而且应该私有的东西设为私有 当 JS 类型向我公开其所有私有部分时 我总是有一种奇怪的感觉 而且这种感觉并没有被 唤起 假设我有一个类型draw方法 内部调用drawBackground and d
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • D3 向对象添加超链接?

    我正在尝试制作 D3 图 它将代表我网站的菜单 我尝试按照此处的其他指南添加超链接 但它们都不起作用 每个对象都会有一个不同的 URL 指向 主页 关于 联系方式等 如果添加超链接 我可以拖动对象吗 这意味着如果我按住单击 如果我单击该对象
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • 在javascript中创建图像的缩略图方块(不丢失纵横比)

    我正在制作一个客户端拖放文件上传脚本作为书签 在上传之前 我使用 File API 将图像读取为 base64 格式并将其显示为缩略图 This is how my thumbnails look like I want them to l
  • 在 React Web 应用程序中使用 createjs-soundjs

    我想用https www npmjs com package createjs soundjs https www npmjs com package createjs soundjs在 React Web 应用程序上播放声音 我正常安装了
  • Vue-Router 抽象父路由

    我正在尝试将当前网站迁移到 vuejs 站点地图必须是 login signup password reset browse search dozens of other routes 由于其中一些路线共享大量 fx 因此我将它们设为父路线
  • 如何使用 javascript 更改文件扩展名

    有谁知道在 Javascript 中更改文件扩展名的简单方法吗 例如 我有一个带有 first docx 的变量 但我需要将其更改为 first html 这将改变字符串包含文件名 let file first docx file file
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当

随机推荐