PHP中的内容协商和HTTP标头

时间:2009-12-30 15:38:56

标签: php http caching proxy

这是我昨天的问题: 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中实现它。

谢谢你的灯!

1 个答案:

答案 0 :(得分:0)

我认为,如果您通过相同的网址投放多种语言,且GETPOST值仅基于Accept-Language标题,那么您必须使用Vary

如果您使用GET参数,那么您不需要更改,只需正确设置缓存标题。

如果您想使用相同的文档,但可以改变URL,那么您可以使用PATH_INFO环境变量模拟其他网址,但使用相同的文档。

他的URI标头方案仅在您有不同的URL时才有效。