Today it occurred to me that, after a little over ten years of basic fluency in HTML, I have absolutely no idea why the href attribute is named "href". Why not "url", "link", or even just "ref"?

I found no mention of name origin in the HTML recommendation, which has the following to say about the attribute:

This attribute specifies the location of a Web resource, thus defining a link between the current element (the source anchor) and the destination anchor defined by this attribute.

Not a single "H" word. The remarks in the HTML 4.01 DTD provide more naught:

 href        %URI;          #IMPLIED  -- URI for linked resource --

Its not hard to make an educated guess, of course, but I was hoping for something canonical. Here's what I came up with in order of what I'd like "href" to mean:

  1. Hypermedia Reference
  2. Hypertext Reference
  3. Heraldo Refera (sp., I know, thanks. It works better this way.)
  4. HTTP Reference
  5. Hyperlink Reference
  6. HTML Reference

I could live with both "hypermedia reference" and "hypertext reference" but not "hyperlink reference" or "HTML reference". The former implies that "href" references a hyperlink (which it doesn't) and the latter implies that what you are referencing will always be HTML.

And after a bit more digging, I think it's probably safe to rule out "HTML Reference" entirely. Early alt.hypertext discussion around the WorldWideWeb (WWW) project makes no mention of HTML whatsoever. (I forgot that the term "hypertext" had been around way before HTML was invented [1965]). Here's an excerpt of TimBL pitching the web in 1991:

We also have code for a hypertext server. You can use this to make files available (like anonymous FTP but faster because it only uses one connection). You can also hack it to take a hypertext address and generate a virtual hypertext document from any other data you have - database, live data etc. It's just a question of generating plain text or SGML (ugh! but standard) mark-up on the fly. The browsers then parse it on the fly.

Tim had a nasty itch there, didn't he? Good thing he scratched it.

"Hypertext Reference" would seem to be the most likely original expansion of "href". Can any of you old-timers confirm or deny this or have any recollection of the name's origin?

UPDATE 1: It looks like HREF originally stood for something much less obvious. See comments for some interesting discussion on "head anchors".

UPDATE 2: It would appear that we have it from the horses mouth now:

... "A" is for "anchor", "HREF" is for "hypertext reference" ...

Thanks to David Håsäther for digging up the obscure reference. We can all sleep a little easier tonight. Maybe...

UPDATE 3: Anyone with even the slightest interest in this stuff should take a look at Sean Palmer's Early History of HTML - 1990 - 1992. It's a short, meaty timeline packed with great information, including info on the earliest HTML document on the web and a first implementation of hypertext by TimBL: HyperText.m.

Huge thanks to Dan Brickley for leaving the link in the comments.