有没有办法在通常使用Cookie的服务器上禁用PHP在特定页面标题中发送cookie?
场景是我有一台使用cookie的服务器,但有些页面实际上是编程API调用,不需要cookie,实际上通过发送这些不相关的数据来减慢用户的API请求。
答案 0 :(得分:4)
许多网站在没有cookie开销的情况下用于提供静态资源的方式是使用不同的域。例如,对于Stack Overflow,该域为http://sstatic.net
在网络应用中,您可以将Cookie限制为特定路径。默认情况下,它们将被限制在设置它们的目录中。您还可以使用setcookie()
中的$path
参数明确指定它。
答案 1 :(得分:1)
我同意Pekka的回答和Dagon的评论。如果你使用像firebug这样的工具查看http请求中的内容,你会发现只有在有setcookie调用时才会发送cookie,但是,浏览器将始终发送它为域提供的有效cookie。
解决这个问题的方法是为api使用单独的域或子域。您还可以配置支持api的Web服务器以禁用对cookie的任何支持,但是,如果您的域在任何地方实施了域cookie,则无法阻止客户端在其请求的标头中发送所有cookie数据。因此,如果您为api使用完全不同的域名,那么最好避免使用完全不同的域名。如果您可以确保不存在域cookie,则子域是下一个最佳解决方案。