Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookie是如何在HTTP协议中传递的?_Http_Cookies - Fatal编程技术网

Cookie是如何在HTTP协议中传递的?

Cookie是如何在HTTP协议中传递的?,http,cookies,Http,Cookies,cookie是如何在HTTP协议中传递的?cookie作为HTTP头传递,在请求(客户端->服务器)和响应(服务器->客户端)中都是如此。服务器在其响应头中发送以下内容以设置cookie字段 设置Cookie:名称=值 如果存在cookie集,则浏览器在其请求标头中发送以下内容 Cookie:name=value 有关更多信息,请参阅Wikipedia上的文章。除了在其他答案中所写的内容外,还包括与cookie路径、cookie的最长使用期限相关的其他详细信息,以及是否在Set cookie r

cookie是如何在HTTP协议中传递的?

cookie作为HTTP头传递,在请求(客户端->服务器)和响应(服务器->客户端)中都是如此。

服务器在其响应头中发送以下内容以设置cookie字段

设置Cookie:
名称
=

如果存在cookie集,则浏览器在其请求标头中发送以下内容

Cookie:
name
=
value


有关更多信息,请参阅Wikipedia上的文章。

除了在其他答案中所写的内容外,还包括与cookie路径、cookie的最长使用期限相关的其他详细信息,以及是否在Set cookie response header中传递。例如:

设置Cookie:
名称
=
值[
;过期=
日期][
;域=
域][
;路径=
路径][
;安全
]


但是,在发出下一个HTTP请求时,并非所有这些详细信息都由客户端传回服务器

您还可以在cookie的末尾设置
HttpOnly
标志,以指示您的cookie是HttpOnly,并且不允许通过javascript代码在脚本中访问。这有助于防止会话劫持等攻击

有关详细信息,请参阅。也看看
Nicholas C.Zakas的文章,.

创建示例脚本作为resp:

#!/bin/bash

http_code=200
mime=text/html

echo -e "HTTP/1.1 $http_code OK\r"
echo "Content-type: $mime"
echo "Set-Cookie: name=F"
echo
然后使其可执行并像这样执行

./resp | nc -l 12346
打开浏览器并浏览URL:http://localhost:12346 您将看到浏览器发送的Cookie值

[aaa@bbbbbbbb ]$ ./resp | nc -l -p 12346 GET / HTTP/1.1 Host: xxx.xxx.xxx.xxx:12346 Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8,ru;q=0.6 Cookie: name=F [aaa@bbbbbbbb]$/分别| nc-l-p 12346 GET/HTTP/1.1 主持人:xxx.xxx.xxx.xxx:12346 连接:保持活力 缓存控制:最大年龄=0 接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,*/*;q=0.8 升级不安全的请求:1 用户代理:Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/49.0.2623.112 Safari/537.36 接受编码:gzip、deflate、sdch 接受语言:en-US,en;q=0.8,ru;q=0.6 Cookie:name=F
cookie只处理GET/POST动词,而不处理CONNECT,这是真的吗?@PerlDev在这本书中,我看不出它不应该处理GET/POST以外的请求,但我怀疑浏览器和服务器的实现可能不会在这些情况下实现它;名称2=值2我读过的最好的概述这是Zakas写的:如果有多个cookie呢?它们是用逗号分隔的吗?认为它们被设置为一个新的cookie。Cookie:name=F Cookie:name=A@MarkBuikema看见它们的发送方式是:Cookie:=[;=]……因此,在任何请求中,所有Cookie都是按事实发送的吗?这里是指向Zakas文章的直接链接,而不是回溯链接: