[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsrp] Caching of resources
Hi Rich,
good start, but I've some questions:
- why don't we allow access to the nav state? I think encoding the
current nav state of only this portlet in the URL does not hurt caching
as the nav state cannot be changed by a gR call
- why don't we allow to have other resource URLs in the response of
cachable resource markup?
Stefan
Rich Thompson wrote:
>
> Here is the proposal I promised to draft:
>
>
>
> Rich
> ------------------------------------------------------------------------
>
> Next change
>
>
> 6.3.1 Caching of resources
>
> For performance reasons the Consumer might prefer to cache resources
> across a series of requests. The Producer passes information about the
> cacheability of the resource representation in the cacheControl
> structure returned in a MarkupContext structure. The Consumer can infer
> from this information when it may cache the resource and when the cached
> resource needs to be invalidated and updated by a new call to
> *getResource*. All of the cache semantics described in [Section 6.2.1]
> <#_MarkupCaching> applies to the caching of resources as well.
>
> In addition to Consumer caching, both browser and web-based caching may
> apply to the resource. Since resources can contain URLs which need to be
> written using either the template or Consumer URL rewriting techniques
> discussed in [Section 10.2] <#_URL_Considerations>, the URI used by the
> browser to fetch the resource will likely contain state information
> which virtually guarantees the resource will not be retrieved from the
> cache on subsequent accesses. [Section 10.2.1.1.3.6]
> <#_wsrp-cacheableResource> defines the wsrp-cacheableResource portlet
> URL parameter for the purpose of increasing the hit ratio for the
> browser and web caches of appropriate resources.
>
>
> 10.2.1.1.3.6 wsrp-cacheableResource
>
> This boolean (default value is false) provides an indication to the
> Consumer that it can limit the amount of state it places on the URI for
> the resource such that the likelihood of a subsequent browser access
> being served from a browser/web cache is increased. This portlet url
> parameter can only be set to true if the resource contains no URIs
> referring back to the portlet and if the resource, when served using the
> *getResource* operation, does not require the Consumer to supply the
> navigationalContext structure. When the wsrp-cacheableResource portlet
> url parameter has a value of true, the Consumer SHOULD NOT include any
> navigationalContext structure on a related invocation of the
> *getResource* operation.
>
> Note that this portlet url parameter only impacts Consumer URL rewriting
> as the templates related to resource URIs have to allow for resources to
> access the excluded state/functionality.
>
> If both the wsrp-cacheableResource and wsrp-requiresRewrite portlet URL
> parameters are set to true, the Consumer MUST parse the resource for the
> purpose of rewriting namespace prefixing as per [Section 10.3] <#__Toc77>.
>
>
> 10.2.3 Extended BNF Description of URL formats
>
> These definitions utilize the syntax defined in ISO/IEC 14977 ^[21]
> <#_ftn21>
>
> ConsumerURL = BeginToken (RenderURL | ActionURL | ResourceURL |
> ExtensionURL) EndToken
>
> BeginToken = "wsrp_rewrite?"
>
> EndToken = "/wsrp_rewrite"
>
> RenderURL = "wsrp-urlType=render" {("&" | "&") (CommonPair |
> RenderPair)}
>
> ActionURL = "wsrp-urlType=blockingAction" {("&" | "&") (CommonPair |
> ActionPair)}
>
> ResourceURL = "wsrp-urlType=resource" {("&" | "&") (CommonPair |
> ResourcePair)}
>
> WSRPURLTypes = "render" | "blockingAction" | "resource"
>
> ExtensionURL = "wsrp-urlType=" (Text - WSRPURLTypes) {("&" | "&")
> (ExtensionPair)}
>
> CommonPair = CommonTextPair | CommonBooleanPair
>
> CommonTextPair = CommonTextName "=" Text
>
> CommonTextName = "wsrp-fragmentID" | "wsrp-extensions"
>
> CommonBooleanPair = CommonBooleanName "=" BooleanValue
>
> CommonBooleanName = "wsrp-secureURL"
>
> RenderPair = RenderTextName "=" Text
>
> RenderTextName = "wsrp-mode" | "wsrp-windowState" |
> "wsrp-navigationalState" | "wsrp-navigationalValues"
>
> ActionPair = ActionTextName "=" Text
>
> ActionTextName = "wsrp-interactionState" | RenderTextName
>
> ResourcePair = (ResourceTextName "=" Text) | (ResourceBooleanName "="
> BooleanValue)
>
> ResourceTextName = "wsrp-url" | "wsrp-resourceID" | "wsrp-resourceState"
>
> ResourceBooleanName = "wsrp-requiresRewrite" | "wsrp-preferOperation" |
> wsrp-cacheableResource"
>
> ExtensionPair = Text "=" Text
>
> Text = { "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k"
> | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w"
> | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
> | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U"
> | "V" | "W" | "X" | "Y" | "Z" | "0" | "1" | "2" | "3" | "4" | "5" | "6"
> | "7" | "8" | "9" | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
> | "%" }
>
> BooleanValue = (("true" | "1") | ("false" | "0"))
>
>
>
> ProducerURLTemplate = {{Text} {ReplacementToken}}
>
> ReplacementToken = "{" CommonTextName | RenderTextName | ActionTextName
> | ResourceTextName | CommonBooleanName | ResourceBooleanName |
> ParameterName "}"
>
> ParameterName = "wsrp-urlType" | "wsrp-portletHandle" |
> "wsrp-userContextKey" | "wsrp-portletInstanceKey" | "wsrp-sessionID"
>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]