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
>> -~----------~----~----~----~------~----~------~--~---
>>
>>
>

Reply via email to