Browsers use the expires header in conjunction with a URL locally to
determine whether or not to request a resource. If this has expired or does
not exist, browsers will then do a conditional get. The web server will
return a 304 response if the resource has not been modified, so this will
add additional latency to overall page load performance. You can validate
these assertions using the Firebug and the web developer plugins for
Firefox.

In general, the rule is to not use Etags:
http://developer.yahoo.com/performance/rules.html I'll follow up to see if
the same restrictions apply on App Engine. My gut feeling is "no", because
we probably have some consistent way of generating the Etags, but I can't
say with any certainty just yet.

There's a couple of caching rules here:
http://blog.tylerholmes.com/2008/05/http-headers-and-caching-cache-control.html


On Tue, Mar 2, 2010 at 8:08 AM, George Moschovitis <
[email protected]> wrote:

> Yes, I am setting a cookie.
>
> The session leakage problem is interesting. I have a question though,
> does the Expires header have precedence over the LastModified/ETag
> headers?
> I would like to use the LastModified/ETag headers to implement
> conditional GET, are you sure that ETag has precedence over the
> Expires header? (I am using cache-control: private)
>
> btw, thanks for the answer.
>
> -g.
>
> On Mar 1, 8:39 pm, "Ikai L (Google)" <[email protected]> wrote:
> > Are you setting a cookie? We force an expires header for any requests
> that
> > have a set-cookie header. The reason for this is that many users access
> > websites using HTTP proxies. Some proxies will cache the entire request,
> > which may cause session leak (e.g. let you read someone else's email).
> >
> > On Mon, Mar 1, 2010 at 7:09 AM, George Moschovitis <
> >
> >
> >
> >
> >
> > [email protected]> wrote:
> > > I don NOT want to set an Expires header. I am just curious with the
> > > header is added (and messes up with my caching scheme)
> >
> > > -g.
> >
> > > > Well, if you do not like what GAE sets as Expires value, why not set
> > > > yours?
> >
> > > > On Mar 1, 11:18 am, George  Moschovitis <
> [email protected]>
> > > > wrote:
> >
> > > > > > Could you provide some code please?
> >
> > > > > What kind of code should I provide? I do NOT set the Expires header
> in
> > > > > my code, and still GAE automatically adds the Expires header.
> >
> > > > > -g.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google App Engine for Java" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine-java%[email protected]><google-appengine-java%2B
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
> >
> > --
> > Ikai Lan
> > Developer Programs Engineer, Google App Enginehttp://
> googleappengine.blogspot.com|http://twitter.com/app_engine
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>


-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" 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/google-appengine-java?hl=en.

Reply via email to