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

来源:4-1 cookie简介

feibenren

2015-04-14 23:19

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

写回答 关注

1回答

  • __untitled__
    2015-05-05 14:59:27

    这和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权威指南

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题