【发布时间】:2010-12-31 08:18:32
【问题描述】:
我正在运行启用了 mod_rewrite 的 PHP5 和 Apache。
we know 在每个页面加载浏览器都会将 cookie 数据发送到请求的文件。这些数据可能对 PHP 文件有用,但是对于图像或 css 文件,它没有任何价值,只会让浏览器和服务器之间的通信变慢。
有没有办法告诉浏览器或服务器停止对某些文件类型或目录这样做?
【问题讨论】:
标签: php browser request cookies
我正在运行启用了 mod_rewrite 的 PHP5 和 Apache。
we know 在每个页面加载浏览器都会将 cookie 数据发送到请求的文件。这些数据可能对 PHP 文件有用,但是对于图像或 css 文件,它没有任何价值,只会让浏览器和服务器之间的通信变慢。
有没有办法告诉浏览器或服务器停止对某些文件类型或目录这样做?
【问题讨论】:
标签: php browser request cookies
当它向源服务器发送请求时,如果用户代理存储了适用于该请求的 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
【讨论】:
两种方式:
【讨论】: