它将由您的 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