如何告诉浏览器不要为某些文件夹,文件或请求发送COOKIE?

时间:2009-12-31 06:01:18

标签: php browser request cookies

我在启用mod_rewrite的情况下运行PHP5和Apache。

每个页面上的we know加载浏览器会将cookie数据发送到请求的文件。这些数据对PHP文件很有用,但是对于图像或css文件,它没有任何价值,只是简化了浏览器和服务器之间的通信。

有没有办法告诉浏览器或服务器停止对某些文件类型或目录这样做?

2 个答案:

答案 0 :(得分:6)

两种方式:

  1. 将Cookie的路径限制为仅包含需要Cookie的php脚本的网站部分,或
  2. 从其他域投放图片和CSS,但不会发送Cookie。

答案 1 :(得分:1)

我查了cookie specification

  

当它向原始服务器发送请求时,如果用户代理存储了适用于请求的cookie,则该用户代理包含Cookie请求标头。

它描述的唯一条件是域,路径,端口和安全性(https)。如果您无法重构您的应用程序以避免这种情况,那么您将获得无关的cookie,并且您可能无法对其进行任何操作(无需更换Internet上的所有浏览器,或者只是不开始发送cookie )。我考虑将重定向放在/指向子目录,但这可能与您希望保存的开销一样多,并且具有语义含义。

你有基准吗?这笔交易究竟有多大?你送的饼干有多大?您是否可以采取其他优化措施来改善用户体验?

Cookie语法,供参考:

   set-cookie      =       "Set-Cookie2:" cookies
   cookies         =       1#cookie
   cookie          =       NAME "=" VALUE *(";" set-cookie-av)
   NAME            =       attr
   VALUE           =       value
   set-cookie-av   =       "Comment" "=" value
                   |       "CommentURL" "=" <"> http_URL <">
                   |       "Discard"
                   |       "Domain" "=" value
                   |       "Max-Age" "=" value
                   |       "Path" "=" value
                   |       "Port" [ "=" <"> portlist <"> ]
                   |       "Secure"
                   |       "Version" "=" 1*DIGIT
   portlist        =       1#portnum
   portnum         =       1*DIGIT