这是我昨天的问题: What is the function of the "Vary: Accept" HTTP header?
我有一个.php,可以使用不同的MIME类型。为此,我使用“Vary:Accept”HTTP标头(确认为正确)。但是,如果同一个文档(具有相同的URL)可以在多种语言中提供(并且此页面可以由代理缓存),该怎么办?我知道这是糟糕的设计,但有时可能会发生。在这种特殊情况下,将采用何种方式。
J.J。给讨论提供了一个链接(http://www.w3.org/Protocols/HTTP/Issues/vary-header.html),其中某人想要使用Vary HTTP标头来获取可以用两种不同语言提供的文档:
对于请求/变体方案,您 列出服务器不应该使用 VARY:很抱歉大喊,但我想要它 要真实清楚。变化:严格 对于那些无望或无望的情况 代理过于复杂 复制服务器会做什么 (除了存储标题和做 严格请求标头相等 比较后续要求)。
我认为解决方案在于J.J.提供的链接,但我不确定它是什么以及如何在PHP中实现它。
谢谢你的灯!
答案 0 :(得分:0)
我认为,如果您通过相同的网址投放多种语言,且GET
或POST
值仅基于Accept-Language
标题,那么您必须使用Vary
如果您使用GET
参数,那么您不需要更改,只需正确设置缓存标题。
如果您想使用相同的文档,但可以改变URL,那么您可以使用PATH_INFO
环境变量模拟其他网址,但使用相同的文档。
他的URI标头方案仅在您有不同的URL时才有效。