首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SetCookie必须在HTTP响应的开头调用?

为什么SetCookie必须在HTTP响应的开头调用?
EN

Stack Overflow用户
提问于 2010-07-10 22:14:53
回答 2查看 154关注 0票数 1

在阅读有关cookies的文章时,我发现很难理解下面这句话

"setcookie()必须在输出到超文本传输协议响应之前被调用。主要原因是PHP没有缓冲超文本传输协议响应“请帮助我用简单的方式解释它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-10 22:58:21

要理解这句话,你需要知道几件事:

  1. HTTP响应由两部分组成,一组“头”(键-值对),然后是“主体”,即实际数据,例如网页或图像。必须首先发送
  2. HTTP头,一旦发送了“主体”的一个字节,client.
  3. Cookies,将不再处理任何头,并以HTTP头的形式发送到客户端。

所以它的意思是:除非你做了一些特殊的事情,否则一旦你“回显”一些东西或者在<?...?>代码块之外有任何数据,PHP就会以这些数据开始响应体。在此之后,不能再发送任何标头,包括cookie设置标头。

票数 5
EN

Stack Overflow用户

发布于 2010-07-10 22:16:36

这仅仅意味着在输出任何HTML代码之前,您需要确保输出所有标头(cookie是通过HTTP标头设置的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3219494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档