On Wed, 06 Nov 2002, Tuomas Lukinmaa wrote: > > Too many broken browsers substitute their own crap for the > > server-supplied 404. > > Atleast it's known crap to the users. :) If there's some known browsers > to break badly on the handling of 404, there should be User-Agent > exception for them. It is not reasonable to make everyone suffer over a > few broken browsers.
So we're going to be detecting the corner-case where the user is NOT using IE and send a 404? Not worth it. We have to A) put in user-agent detection and B) change a header for 10% of or users. vs. keeping things the way they are now. Option 2 wins. > > ETag is just a string, so the base64-encoded key of the current file > > would do nicely (for key responses) and something unique-ish for the > > fproxy html/graphics. > > The CHK-string of content should do nicely. It would be better to use > Last-Modified for FProxy's own content to minimize the amount of > processing (we don't want to calculate hashes over and over for the > FProxy content). Yes, but we don't have a CHK for KSKs or SSKs, so we use what we always have: The actual network key (Routing half only). On Apache, the ETag is calculated as %x-%x-%x, inode, size, mtime. We could probably just 32bit-hash the filename for FProxy content and include the real size and the .jar build time. This means the ETag will remain constant for each build, but alter if the node is upgraded. We don't want a situation where the node is upgraded, some HTML is changed, and the ETag remains the same! Last-Modified/Age for this content should be the .jar build time as well. > > No, setting a reasonable Expires: time is a lot more friendly. > > Setting the Expires: header to +infinity for normal keys > > rollover-time for mapped keys seems logical. > > I disagree especially when it comes to Freenet content. It might be > logical, but it is NOT correct. Correct way is to use strong validators > over weak ones. > > http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.3.3 > > > Last-modified: is important as it tells the cache how volitile the > > page is. Set it to 1-year ago since we don't really know how old > > things are. > > If it's not known how old the content is, ETag should be used. It's a > strong validator in Freenet's case (CHK strings) and just made for these > situations. Yes, but practically speaking, not everyone supports ETag. Therefore, we should always use all options. Sending a few extra bytes of header to reduce reloads on various platforms is a net-win for load. If you'll note, when we send a redirect we send a LOT of extra no-cache headers. Expires in the past, Pragma no-cache, Cache-Control, etc. Until every system out there works properly, we need to use them all. --Dan -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 155 bytes Desc: not available URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20021107/1ac52b05/attachment.pgp>
