首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

http Cookie从何而来,不是由" set -Cookie“响应头设置的?

HTTP Cookie 并非直接由 "set-Cookie" 响应头设置,而是由服务器在 HTTP 响应头中通过 Set-Cookie 字段发送给浏览器,并由浏览器保存并在后续请求中发送回服务器。这一过程涉及多个步骤和组件,下面是对这一过程的详细解释:

HTTP Cookie 的基础概念

  • 定义:HTTP Cookie 是由服务器发送到用户浏览器并保存在本地的一小块数据,用于记录用户的状态信息,如登录状态、购物车内容等。
  • 作用:Cookie 的主要作用是帮助服务器识别用户身份,保持用户状态,以及提供个性化服务。

Cookie 的来源和设置过程

  • 服务器端设置:服务器通过 HTTP 响应头中的 Set-Cookie 字段设置 Cookie。这个字段包含了 Cookie 的名称、值、过期时间等信息。例如,当用户登录成功后,服务器可能会设置一个包含用户身份信息的 Cookie,并通过 Set-Cookie 响应头发送给浏览器。
  • 浏览器处理:浏览器接收到 Set-Cookie 响应头后,会解析其中的信息,并将 Cookie 保存在本地。之后,每当浏览器向同一服务器发送请求时,它会自动在 HTTP 请求头中添加相应的 Cookie 字段,将 Cookie 的信息发送回服务器。

Cookie 的存储和发送

  • 存储:Cookie 通常存储在浏览器的硬盘上,而不是内存中。这意味着即使浏览器关闭,Cookie 仍然可以保留,直到其过期时间到达或被明确删除。
  • 发送:在后续的 HTTP 请求中,浏览器会自动将保存的 Cookie 信息发送给服务器,以便服务器识别用户并提供相应的服务。

通过上述步骤,HTTP Cookie 在客户端和服务器之间建立了一种状态管理机制,使得服务器能够在多个请求之间保持对用户状态的记忆,从而提供更加个性化和高效的服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Node.js 小知识 — HTTP 请求与响应如何设置 Cookie 信息

通常我们在浏览器向服务器发起一个请求,浏览器会检查是否有相应的 Cookie(浏览器的安装目录下有个 cookie 文件夹用来存放各个域下设置的 cookie 信息),如有则自动添加到 Request...根据 RFC 6265[2] 定义的 cookie 工作方式,在 HTTP 请求处理中,服务端可以在 Response headers 中为客户端设置 Set-Cookie 字段。...这是客户端的请求方法实现,我们可以在 headers 中直接设置 Cookie 字段,也可通过 http.request 返回的 req 对象调用 setHeader() 方法设置。...: ', res.headers['set-cookie']); }); }); req.setHeader('Cookie', ['b=222', 'c=333']) // 方式二设置...req.on('error', console.error); req.end(); } sendRequest(); 服务端代码如下所示,注意响应设置的是 Set-Cookie 字段。

5.6K20
  • Cors跨域(二):实现跨域Cookie共享的三要素

    ..."); } } 浏览器访问:http://localhost:8080/cookie,可以看到响应里带有Cookie头信息Set-Cookie告知浏览器要保存此Cookie,如下所示:...具体现象是:跨域请求的Response响应了即使有Set-Cookie响应头(且有值),浏览器收到后也是不会保存此cookie的。...要实现Cookie的跨域共享,有3个关键点: 服务端负责在响应中将Set-Cookie发出来(由Access-Control-Allow-Credentials响应头决定) 浏览器端只要响应里有Set-Cookie...跨域Cookie共享的三要素 首先确保服务端能正确的在响应中有Set-Cookie响应头,这由Access-Control-Allow-Credentials: true来保证。...,是个bool值,它若为true就有两个作用: 在跨域请求的响应中允许Set-Cookie响应头 浏览器收到响应后,浏览器根据此头判断是否让自己的withCredentials属性生效 所以就来到了第二个要素

    8.7K64

    【Nginx29】Nginx学习:代理模块(三)缓冲区与Cookie处理

    另外一个 Cookie 相关的配置指令则是 Proxy 模块所特有的,但其实也就是重写或修改后端响应的 Cookie 中的一些信息,一般来说用得也不是特别多,大家还是以了解的心态来看待。...nginx 不会尝试从代理服务器读取整个响应。 nginx 一次可以从服务器接收的最大数据大小由 proxy_buffer_size 指令设置。...一次写入临时文件的数据大小由 proxy_temp_file_write_size 指令设置。 零值禁用对临时文件的响应的缓冲。此限制不适用于将缓存或存储在磁盘上的响应。...proxy_cookie_domain 设置应在代理服务器响应的“Set-Cookie”标头字段的域属性中更改的文本。...proxy_cookie_path 设置应在代理服务器响应的“Set-Cookie”标头字段的路径属性中更改的文本。

    2.3K40

    Http Cookie机制及Cookie的实现原理

    Cookie是解决HTTP无状态性的有效手段,服务器可以设置或读取Cookie中所包含的信息。...Cookie的实现原理 Cookie定义了一些HTTP请求头和HTTP响应头,通过这些HTTP头信息使服务器可以与客户进行状态交互。...客户端请求服务器后,如果服务器需要记录用户状态,服务器会在响应信息中包含一个Set-Cookie的响应头,客户端会根据这个响应头存储Cookie信息。...响应头如下: HTTP/1.0 200 OK Set-Cookie:UserID=itbilu; Max-Age=3600; Version=1 Content-type:text/html …… 3....再次请求时,客户端请求中会包含一个Cookie请求头 客户端会对服务器响应的Set-Cookie头信息进行存储。再次请求时,将会在请求头中包含服务器响应的Cookie信息。

    80930

    Express4.x API (三):Response (译)

    将指定的值到http响应头字段.如果header还没有被设置,它创建具有指定值的头文件,value参数可以是字符串或数组 如果res.set()在res.append()之后的话将会重置以前设置的header...标志cookie只能由web服务器访问 maxAge String 在毫秒内设置相对于当前时间的方便选项 path String cookie的路径,默认为'/' secure Boolean 标记只于...https一起使用的cookie signed Boolean 指示cookie是否被签署 提供带有选项设置的HTTP Set-Cookie``res.cookie起作用,未指定的任何选项默认值为RFC...当选择回调时,将设置Content-Type响应头.然而你可以使用回调方法在回调中更改此值例如:res.set或者res.type 下面这个例子当Accept头域设置为applocation/json...HTTP Status Codes res.set(field [,value]) 将HTTP响应头filed设置为value值.立即设置多个字段,传递一个对象作为参数 res.set('Content-Type

    1.6K100

    Python爬虫基础讲解(五):响应

    HTTP响应报文 HTTP响应报文也由三部分组成:响应行、响应头、响应体 响应行 响应行一般由协议版本、状态码及其描述组成比如HTTP/1.1 200 OK 其中协议版本HTTP/1.1或者HTTP/1.0...响应头 响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。 设置HTTP响应头往往和状态码结合起来。...应答头可以用来完成:设置Cookie,指定修改日期,指示浏览器按照指定的间隔刷新页面,声明文档的长度以便利用持久HTTP连接,..等等许多其他任务。...Servlet一般不设置这个值,而是由Web服务器自己设置。 set-Cookie:设置和页面关联的Cookie。...addcookie:设置一个Cookie(Servlet API中没有setCookie方法,因为应答往往包含多个Set-Cookie头)。

    59130

    Go 语言 Web 编程系列(十六)—— 设置、读取和删除 Cookie

    我们可以在 HTTP 响应头中通过 Set-Cookie 字段设置 Cookie,然后在下次请求时就会在请求头 Cookie 中自动包含新增的 Cookie。...3、发送 Cookie 到客户端 了解了 Cookie 的基本结构,以及如何在 Go 语言中表示后,我们尝试在 HTTP 响应中通过设置 Set-Cookie 头新增 Cookie 并将其发送给客户端浏览器...接下来,我们在 goblog 项目中演示发送 Cookie 到客户端,这一次,我们不通过写入 Cookie 到 HTTP 响应,而是直接通过 HTTP 响应头 Set-Cookie 来设置 Cookie...4、从请求中读取 Cookie 一旦通过 Set-Cookie 响应头将 Cookie 信息发送到客户端浏览器,那么在 Cookie 有效期内,下次同域名下的用户请求将自动在请求头中包含对应的 Cookie...信息,比如我们访问 http://localhost:8080,就可以在请求头 Cookie 中看到上次响应返回的 Cookie: ?

    4.5K20

    Session、Cookie、Token三者关系理清了吊打面试官

    Session 如何判断是否是同一会话 服务器第一次接收到请求时,开辟了一块 Session 空间(创建了Session对象),同时生成一个 sessionId ,并通过响应头的 **Set-Cookie...:JSESSIONID=XXXXXXX **命令,向客户端发送要求设置 Cookie 的响应; 客户端收到响应后,在本机客户端设置了一个 **JSESSIONID=XXXXXXX **的 Cookie...HTTP Cookie 机制是 HTTP 协议无状态的一种补充和改良 Cookie 主要用于下面三个目的: 会话管理:登陆、购物车、游戏得分或者服务器应该记住的其他内容 个性化:用户偏好、主题或者其他设置...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求...Set-Cookie 和 Cookie 标头 Set-Cookie HTTP 响应标头将 cookie 从服务器发送到用户代理。

    2.1K20

    六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜

    ️‍缓存验证 ETags ️‍Vary 响应 HTTP cookies ️‍创建Cookie Set-Cookie响应头部和Cookie请求头部 定义 Cookie 的生命周期 限制访问 Cookie...基本身份验证可以由 HTTP 提供,或者使用WWW-Authenticate和类似的标头,或者通过使用HTTP cookie设置特定会话。...在处理 HTTP 请求时,服务器可以在 HTTP 响应头中通过HTTP Headers Set-Cookie 为客户端设置 cookie。...Set-Cookie响应头部和Cookie请求头部 服务器使用 Set-Cookie 响应头部向用户代理(一般是浏览器)发送 Cookie信息。...提示: 如何在以下几种服务端程序中设置 Set-Cookie 响应头信息 : PHP Node.JS Python Ruby on Rails 定义 Cookie 的生命周期 Cookie

    86230

    JavaWeb11-jsp.cookie.session(2)

    2. cookie常用api及其原理 cookie是由服务器生成,通过响应回去的. set-cookie:akey=avalue 浏览器再次访问服务器的时候,通过一定的规则携带不同的cookie 请求头...Set-Cookie头字段。...从名字来看,我们可以知道HttpSession与Http协议有一定的关系,但是它并不是由Http协议定义的,而是由Javaweb提供。我们可以在JavaEE api中查看它的详细信息。...在Cookie介绍中我们了解到,Cookie是由Http协议制定的,在请求信息和响应信息中分别对应了Cookie请求头和Set-Cookie响应头,并且Cookie是由服务器创建,保存在客户端。...这样,当用户单击URL时,会话ID被自动作为请求头的一部分而不是作为头行发送回服务器。这种方法称为URL重写(URL rewriting)。

    1.1K90

    【Nginx35】Nginx学习:运行信息、响应修改及用户标识模块

    sub_filter_last_modified 允许在替换期间保留原始响应中的“Last-Modified”标头字段,以促进响应缓存。...可以使用嵌入式变量 uid_got 和 uid_set ,还是先来看它的配置信息,然后再进行测试。 userid 启用或禁用设置 cookie 并记录收到的 cookie。...如果设置了标记,则将其与在 cookie 中传递的客户端标识符的 base64 表示中的第一个填充符号进行比较。如果它们不匹配,则使用指定的标记、到期时间和“P3P”标头重新发送 cookie。...userid_name 设置 cookie 名称。 userid_name name; 默认值就是 uid 。 userid_p3p 设置将与 cookie 一起发送的“P3P”标头字段的值。...如果指令设置为特殊值 none,则不会在响应中发送“P3P”标头。 userid_path 定义为其设置 cookie 的路径。

    62930

    Session、Cookie、Token 【浅谈三者之间的那点事】

    Session 如何判断是否是同一会话 服务器第一次接收到请求时,开辟了一块 Session 空间(创建了Session对象),同时生成一个 sessionId ,并通过响应头的 **Set-Cookie...:JSESSIONID=XXXXXXX **命令,向客户端发送要求设置 Cookie 的响应; 客户端收到响应后,在本机客户端设置了一个 **JSESSIONID=XXXXXXX **的 Cookie...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求...Set-Cookie 和 Cookie 标头 Set-Cookie HTTP 响应标头将 cookie 从服务器发送到用户代理。...需要解决的问题 Cookie的创建 通常是在服务器端创建的(当然也可以通过javascript来创建) 服务器通过在http的响应头加上特殊的指示,那么浏览器在读取这个指示后就会生成相应的cookie

    21.9K2020

    看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了

    Session 如何判断是否是同一会话 服务器第一次接收到请求时,开辟了一块 Session 空间(创建了Session对象),同时生成一个 sessionId ,并通过响应头的 Set-Cookie:...JSESSIONID=XXXXXXX 命令,向客户端发送要求设置 Cookie 的响应;客户端收到响应后,在本机客户端设置了一个 JSESSIONID=XXXXXXX 的 Cookie 信息,该 Cookie...HTTP Cookie 机制是 HTTP 协议无状态的一种补充和改良 Cookie 主要用于下面三个目的 会话管理 登陆、购物车、游戏得分或者服务器应该记住的其他内容 个性化 用户偏好、主题或者其他设置...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求...Set-Cookie 和 Cookie 标头 Set-Cookie HTTP 响应标头将 cookie 从服务器发送到用户代理。下面是一个发送 Cookie 的例子 ?

    1.1K20

    Nginx通过Cookie做灰度就这么简单

    map指令是由ngx_http_map_module模块提供的,一般默认都会安装 map的主要作用是创建自定义变量,做变量的映射,变量的值取决于第一个参数指定的一个或多个源变量的值 怎么理解呢,拿上面官网的配置案例来说...if方法其实是一样的,只是if的话,是通过set去给变量赋值,配置如下: ?...request_filename #当前连接请求的文件路径,由root或alias指令与URI请求生成 $request_length #请求的长度 (包括请求的地址,http请求头和请求主体) $request_method...#客户端请求Header头中的cookie变量,前缀" http_NAME #匹配任意请求头字段;变量名中的后半部分NAME可以替换成任意请求头字段,如在配置文件中需要获取http...#可以设置任意http响应头字段;变量名中的后半部分NAME可以替换成任意响应头字段,如需要设置响应头Content-length,sent_http_content_length即可

    1.5K10
    领券