[Project_owners] feed:// URLs?
Neil
neil at parkwaycc.co.uk
Thu Dec 13 09:14:55 PST 2007
Eric H. Jung wrote:
>Are feed:// URLs supposed to be handled internally by firefox and not result in a new HTTP request when followed? If so, how are feed URLs generated (I don't see websites using them AFAIK).
>
>
Here's a more complete answer that Phil Ringnalda gave me:
feed: URIs started to solve two problems - that a link to a feed just
showed "an incomprehensible spew of XML" to people who clicked on it
without a handler installed for the mimetype (in the rare case where the
mimetype was anything even vaguely right, since only Atom has a
registered mimetype and most RSS is served with something random and
utterly wrong, like text/plain or text/html), and that even if you have
a feed reader installed that's registered as a handler for some
IETF-unregistered and unregisterable type like application/rss+xml,
content-type handlers don't get the URI, they get a local copy of the
contents, and RSS doesn't have an element whose contents are "the URL
for me." So in the days before any browsers recognized and did anything
with feeds, linking to feed://example.org/myfeed/ instead of
http://example.org/myfeed/ would let feed readers that knew to register
a handler for feed: successfully subscribe, since they would get the
URI, and would tell people without one that there was no point in
clicking the link.
Of course inventing a non-protocol protocol because people don't use
mimetypes properly, and because you don't like the content of your
format, is completely contrary to WebArch and it will never be
registered and really shouldn't have been done, but it's done and in the
wild. Whether or not it currently does I don't know, but for several
years the default feed links in WordPress were feed: URIs, so there are
several million links with @href starting feed:// on the web.
Then the oddly named version of Safari named for a single feature,
Safari RSS, added sniffing of feeds, and they appear (from the outside,
I haven't looked at their code) to have decided it would be handy to use
feed: URIs both internally, to tell that they'd sniffed a feed, and
externally, in the URI they pass to a client app if you are using
something other than Safari as a feed reader, so that if you click on a
link to http://blog.mozilla.com/feed/ in Safari, it will either display
feed://blog.mozilla.com/feed/ as the URI for its internal feed reader
display, or it will send feed://blog.mozilla.com/feed/ to your default
feed reader.
That put Fx2 in the position of needing to do two things with feed:.
First, to be able to send both feed://blog.mozilla.com/feed/ and
http://blog.mozilla.com/feed/ to the same place, either your one true
feed reader or the preview page so you could decide where to send it, it
needed to handle feed: internally, and ignore any attempt by outside
apps to register for it, and second, to deal with the situation Safari
had produced on OS X (according to beng's comment in the code, I've
never tested), it needed to pass feed: URIs to client apps there, since
that was all they expected to get from a browser. So as far as Firefox
is concerned, feed://foo and http://foo with something sniffable as a
feed are the same thing, application/vnd.mozilla.maybe.feed until it
knows whether or not it can parse it as a feed, then if it can't both
are http://foo, but if it can both are feed://foo, since once this
year's version of Outlook came out only accepting feed subscriptions
with feed: URIs, not with http: URIs, I decided it was simpler to just
pass feed: URIs to local apps on all platforms, so (unless I get backed
out in the next few months) Fx3 is going to do that.
More information about the Project_owners
mailing list