An initial implementation of this is now available as a patch for Shindig https://issues.apache.org/jira/browse/SHINDIG-276
On Wed, May 7, 2008 at 5:22 PM, Louis Ryan <[EMAIL PROTECTED]> wrote: > 1. Yes > 2. Yes, My sample implementation is now doing this > 3. To some extent. Developers have a lot of control using the cache-control > headers. Containers are likely to require a minimum value > > > On Wed, May 7, 2008 at 4:40 PM, Graham Spencer <[EMAIL PROTECTED]> wrote: > >> Thanks Louis. A few minor questions: >> >> [1] I assume DEFAULT should also include CSS files. It might make sense to >> base DEFAULT not on pattern matching targets but rather on the context (e.g. >> <IMG>, CSS, etc.). >> >> [2] Will CSS files be parsed to extract background images and such? >> >> [3] Should we give developers control over timeouts? >> >> --g >> >> >> On Tue, May 6, 2008 at 4:48 PM, Louis Ryan <[EMAIL PROTECTED]> wrote: >> >>> Hi, >>> >>> Many containers offer the ability to rewrite links to use their proxy >>> loading mechanism using *gadgets.io.getProxyUrl() *Typically the >>> generated proxy URL can be expected to give better download performance for >>> users of that particular container and also potentially reducing the load on >>> gadget developer backends. Currently however there is no standard way for a >>> gadget to have links in its generated markup be rewritten to use the proxy >>> URL format. I would like to propose creating a new feature to allow for >>> rewriting of links in generated gadget content >>> >>> Create a new standard gadget feature called *proxy-rewriter *which >>> allows gadgets to control whether they want content re-writing enabled. >>> Containers can choose to turn the feature on by default for all gadgets and >>> gadgets can use this mechanism to opt-out. >>> >>> An 'include' param is used to control which URLs to rewrite: >>> >>> - ALL - All URLs in the content >>> - DEFAULT - is recognized static file extension types such as .js, >>> .png, .gif ... >>> - NONE - disables the feature even if it is enabled by default by the >>> container >>> >>> An 'include-pattern' and 'exclude-pattern' can be specified to implement >>> more exact filtering rules. Patterns are applied to the URL to rewrite, >>> excludes are processed after includes >>> >>> An 'apply-to' is used to specify the comma separated list of mime-types >>> which the rewriter should recognize and rewrite. By default the list is >>> text/html,text/xml,application/xml (suggestions welcome here) >>> >>> <Optional feature="proxy-rewriter"> >>> <Param name="include">DEFAULT</Param> >>> <Param name="include-pattern">.*\/mystaticcontent\/.*</Param> >>> <Param name="exclude-pattern">.*\/mynonstaticcontent\/.*</Param> >>> <Param name="apply-to">text/html</Param> >>> </Optional> >>> >>> This feature will not only impact the content generated when the gadget >>> is rendered but is also used to control whether any content fetched through >>> makeRequest, Preload and proxied URLs is also rewritten. >>> >>> It is probably also worthwhile mentioning how re-writing a URL to be >>> proxied impacts the caching behavior of the content. Containers will cache >>> content fetched through the proxy, in general containers are likely to favor >>> a simpler expires/max-age style cache control policy rather than the more >>> complicated to implement and more latency sensitive >>> Last-Modified/If-Modified-Since which is the default mechanism Apache and >>> other webservers use when serving static files. Containers are free to make >>> policy decisions about how to alter the cache-control headers of content >>> fetched through their proxy. >>> >>> A sample policy might look like: >>> - Pragma : no-cache & Cache-Control : no-cache,no-store are always >>> respected and this content will never be cached by the proxy >>> - Expires and Cache-Control : max-age are always respected. If expiration >>> is shorter than one day and the URL is a recognized static file type then >>> expiration is forced to 1 day minimum >>> - ETag & Last-Modified are stripped if Expires or Cache-Control is set or >>> the URL is a recognized static file type. >>> >>> Such a policy is attempting to balance the needs of sophisticated users >>> of real If-Modified requests and the default configuration of common static >>> file serving configurations. >>> >>> Thoughts? >>> >>> -Louis >>> >>> >>> * >>> * >>> >>> >> >> --~--~---------~--~----~------------~-------~--~----~ >> You received this message because you are subscribed to the Google Groups >> "OpenSocial and Gadgets Specification Discussion" group. >> To post to this group, send email to >> [EMAIL PROTECTED] >> To unsubscribe from this group, send email to >> [EMAIL PROTECTED] >> For more options, visit this group at >> http://groups.google.com/group/opensocial-and-gadgets-spec?hl=en >> -~----------~----~----~----~------~----~------~--~--- >> >> >

