- From: Martin Atkins <mart@degeneration.co.uk>
- Date: Sat, 22 Nov 2008 00:21:37 -0800
Hallvord R M Steen wrote: > > I've built two-three websites that use content/language negotiation > and I now consider it an architectural mistake to rely on negotiation > because the URLs no longer uniquely identify the variants I in many > scenarios need to identify. It's OK-ish to do it as a pure format > choice where the server and UA just agree on using the PNG or GIF > version for an <IMG> tag. For links *users* (and FWIW search engines, > validators and other agents) may interact with it's however a big > mistake to move away from one URL per variant of a resource. In light > of my content negotiation experiments and experience I'd say an Access > attribute in HTML would be harmful to the usability of URLs. > > As a URL user (web browsing human, HTML author, linker, bookmarker, > E-mail-with-links author) I often want to be sure about what variant > of a resource I link to. To be explicit about this across scenarios > requires explicit URLs with language and type information. > Agreed. I think the assumptions underlying content negotation are flawed, and thus the mechanism itself is flawed and causes confusion and inconvenience when used in practice. The sentiment underlying this proposal seems to be that HTTP content negotation would work fine if only the pesky browsers would support it, but I think there are deeper-rooted problems than simply a lack of browser support. I think a better solution is to publish the HTML version with attributed hyperlinks, like this: <link rel="alternate" type="application/pdf" href="document.pdf"> or, if you prefer: <a href="document.pdf" rel="alternate" type="application/pdf"> PDF Version </a> This way clients can discover the alternative representations, but the alternative representations are all directly addressable so you can link to a specific representation. This approach is used in practice successfully today to make available Atom representations of HTML pages across the web. Atom feeds are arguably the best example of a successful completely-RESTful API that we have today, so this approach is proven to work. In future, once IETF has finished specifying this, it may also be possible to do this in the HTTP response headers for non-HTML resources: Link: <document.pdf>; rel="alternate", type="application/pdf" (or something similar) ...and some other document formats such as Atom already provide equivalent linking constructs that you can use today.
Received on Saturday, 22 November 2008 00:21:37 UTC