I'm currently writing an extension to perl's HTML::Mason code to support ESI. I'd like to allow page construction to happen at either the origin server or the Surrogate without change to the code on the origin.
In the Edge Architecture Spec (EAS), there's mention of a Surrogate-Capability Header which "allows surrogates to advertise their capabilities with capability tokens". I'd like to use this, or something like this, to trigger the code on the origin server to decide whether to issue esi:include tags and have the pages constructed at the edge, or to construct the pages fully at the origin. vcl can do what I need, but I wonder what people think would be the best way to advertise the ESI capabilty, and whether there's any interest in doing this in varnish itself. Even just a Varnish version number in the request headers would be useful and would allow my code to require that little bit less external configuration for it to work. Advertising "ESI/1.0" in the Surrogate-Capability Header is problematic in that only part of that spec is supported. Perhaps Varnish should use it's own token here, or perhaps it should just issue a separate header saying that varnish is running and what version. Any thoughts? Andrew McNaughton // _______________________________________________ varnish-misc mailing list [email protected] http://projects.linpro.no/mailman/listinfo/varnish-misc
