[webkit-dev] Accept- & Content-Resolution headers proposal

Nicholas Shanks contact at nickshanks.com
Fri Jun 8 04:07:33 PDT 2007


Hi Peter.

I recommend you take a look at what Larry Masinter pointed out. It  
becomes clear that all of this has already been solved 9 years ago,  
but because it (apparently) isn't enabled in Apache by default, I and  
many others never even realised it existed:

> Content negotiation for HTTP based on parameters beyond MIME types
> was the focus of a significant amount of IETF work, including
> RFC 2295 ("Transparent Content Negotiation in HTTP")
> RFC 2296 ("HTTP Remote Variant Selection Algorithm -- RVSA/1.0")
> and a set of 'media features' (including resolution, screen
> size, pixel depth, etc.) in a Media Feature registry
> (RFC 2506, BCP 31).

http://www.ietf.org/rfc/rfc2295

Basically the client adds a "Negotiate: trans" header to the GET  
request, and initiates transparent (to the user) content negotiation  
(TCN). The server sends back a 300 response with a list of choices in  
an Alternates header, the format of which is defined in the RFC. The  
client then issues a new GET request for the one it wants, without  
having to send any environment information (dpi, &c.) to the server.

Clients can also send a few (small) Accept-* headers and ask the  
server to take an educated guess, but still return the list of  
Alternates along with it's guess, which could save round trips if the  
client decides that the server's guess was good enough ("the 150dpi  
would have been best for me, but I'll just use this here 200dpi image  
you've already sent"). If the resource is non-negotiable, the  
Negotiate header is ignored by the server and nothing changes.


In light of this, I suggest that WebKit developers (including me if I  
get the time) look into implementing this set of RFCs, and ignore all  
previous suggestions.
It seems we've been in the classic chicken-and-egg situation since  
1998, where clients don't implement it because servers don't have it  
turned on by default, and servers don't have it enabled because there  
are no client implementations to test against. Website owners are  
left none the wiser, and while a few server-side negotiation, most  
don't find it reliable enough to use, and have things like flag icons  
on their home page to choose your language.

Apple members should discuss with the IETF the addition of device- 
pixel-ratio to the Media Feature registry. This will allow TCN for  
<img> and <object> elements containing visual media, and anywhere  
else where CSS does not apply.
I also suggest a "High-Res: Part III" blog post on webkit.org to draw  
attention to this feature and get more web developers aware of and  
using TCN, which I think is the biggest hurdle (implementing it won't  
be as hard).

- Nicholas.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2427 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/webkit-dev/attachments/20070608/23c81121/smime.bin


More information about the webkit-dev mailing list