我正在编写一个应用程序,它使用服务器发送的事件将更新推送到浏览器。 除非客户端位于一个“Web加速器”代理之后,即使cache-control标头为非cache-control ,它也会非常积极地caching来自Web服务器的输出,这在很大程度上是非常有效的。 在代理决定给我什么之前,我需要发送大量的数据,这意味着更新被延迟了很长时间。
我相信这个代理不符合HTTP标准,但我不能改变他们存在的事实。 因此,我需要一种方法来解决这个问题。
是否有一些技巧(也许是一些魔术头?),我可以使用它来确保我的事件及时传递?
Cache-Control头中的caching指令对于访问者浏览器以及任何中间caching代理服务器都有更多的select,而不仅仅是no-cache :
private或public ; 私人响应是特定于用户的,不应该被caching,公共响应可以被caching。 no-cache主要是听起来像是一个指令,重新validation每个后续请求的资源。 虽然经过validationcertificate资源仍然有效,但caching的响应仍然可以提供。 no-store明确的指示,即响应必须被视为机密,而不是存储,比上面的no-cache选项要强一些。 max-age以秒为单位)覆盖Expires标题,并指示资产何时到期并应从caching中清除。 s-maxage与上述相同,但对于像内容交付networking这样的共享caching。 你可以尝试,如果结合他们给出更好的结果。
简单的select可能当然是启用TLS,其中的networking加速器根本无法读取您的访客和networking服务器之间的数据了。