为了账号安全,请及时绑定邮箱和手机立即绑定

因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

为什么cookie在http头里面,就必须要在其他信息输出以前进行设置?

正在回答

1 回答

这和HTTP协议有关。平时我们使用浏览器访问网站,浏览器作为客户端,而网站(目标服务器)作为服务端。我们的浏览器发送访问请求给服务器,这个访问请求叫“HTTP Request”,而服务器接收到请求后,回应客户端,这个叫“HTTP Response"。


这里看一个例子(HTTP Request,即HTTP请求)

POST / HTTP/1.1
Host: www.baidu.com

licenseID=string&content=string&/paramsXML=string


第一行,使用的是POST方法,访问host下的“/”,也就是主页啦。使用HTTP协议的1.1版本

第二行,服务器地址。

第三行,空行(这个是必须要的)

第三行,内容。因为是POST方法,所以嘛,发送的数据是放在body里面的。如果是GET,就是在第一行。比如:GET /index.php?username=aaa&nickname=jackchen HTTP/1.1


上面那个如果觉得太麻烦,可以简单这么看:

请求行

请求头

(空行,必须)

内容


HTTP请求其实也是数据,只是封装起来的数据而已。数据的发送都是从头开始的。然后呢,cookie是在请求头的,它在内容上面啊。如果你内容先输出的话。。。不觉得很奇怪?


表达能力不好,请参考:

http://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE


书籍推荐:

HTTP权威指南

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信