【问题标题】:How to tell browser do not send COOKIE for certain folders, files or request?如何告诉浏览器不要为某些文件夹、文件或请求发送 COOKIE?
【发布时间】:2010-12-31 08:18:32
【问题描述】:

我正在运行启用了 mod_rewrite 的 PHP5 和 Apache。

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

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

【问题讨论】:

    标签: php browser request cookies


    【解决方案1】:

    我查了cookie specification

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

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

    您是否对其进行了基准测试?到底有多大?您要发送多大的 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
    

    【讨论】:

      【解决方案2】:

      两种方式:

      1. 将 cookie 的路径限制为仅包含需要 cookie 的 php 脚本的站点部分,或者
      2. 提供来自不同域的图像和 CSS,不会发送 cookie。

      【讨论】:

      • 在我的应用程序中,公共 html 文件夹中只有一个 php 文件,即 index.php 在同一目录中,有资产和媒体文件夹。在这种情况下,定义 cookie 路径不会产生任何影响,并且并非总是可以创建新域或子域。
      • 抱歉,路径和域是唯一的方法(除了端口和安全性,它们通常没有多大用处)。为什么不将 index.php 重定向到 /home/index.php 或 /a/index.php 或类似的东西?那么cookies只能去那个子路径。
      猜你喜欢
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多