Web compat and http-equiv

Historically, there have been four kinds of http-equiv pseudo-HTTP headers:
 1) Headers that are <meta>-only and don't work as a real header (e.g. Refresh)
 2) Headers that have different processing as http-equiv and as a real header (e.g. Content-Type, Link and Set-Cookie)
 3) Headers that are reported to the document object the same way as http-equiv and as real headers (e.g. Default-Style and Content-Language)
 4) Headers that are written back to the HTTP layer and have an effect there (e.g. Pragma and Cache-Control)

In the world view of the HTML5 spec, #4 doesn't exist. While it would be really nice not to support case #4 in Firefox 4 at all (support is currently broken), I'd like to get a bit more data about it first considering that Firefox 3.6 supports case #4.

As far as I can tell, the only headers that might make a difference considering case #4 are headers that affect the retention of the HTTP cache entry. However, it's not clear to me, what's actually required for Web compat. Nothing? All caching-related headers? Only Pragma: no-cache as a way to doom the cache entry?

I tested browser engine support for Pragma: no-cache. The results depend on the quirkiness of the document. Gecko (in Firefox 3.6) dooms the cache entry in both quirks and standards.
WebKit does not take Pragma into account in either mode. Trident and Presto doom the cache entry in their quirks modes but do not take it into account in their standards modes.

Thus, 3 out of 4 make Pragma: no-cache have an effect for quirks-mode docs but 3 out of 4 make it have no effect on standards-mode docs.

Does anyone happen to have data about the Web compat impart of failing to support Pragma: no-cache for quirky doc? Does Opera implement it to address actual compat issues or just to do exactly what IE does? Does IE do it for real compat issues on as a matter of principle of not touching the IE 5.5 mode? (FWIW, if I were to reimplement Pragma: no-cache for Firefox 4, I'd be inclined to make it work for both quirks and standards, since having mode differences makes QA harder.)

More generally, does anyone have data about which http-equiv values a browser must support to be able to successfully browse existing content? Does the list include more than Refresh, Content-Type, Set-Cookie and maybe Content-Language?

-- 
Henri Sivonen
hsivonen@iki.fi
http://hsivonen.iki.fi/

Received on Tuesday, 14 September 2010 12:45:08 UTC