Slashdot Banner
Stories
Slash Boxes
Comments
typodupeerror delete not in

Comments: 620 +-   Tim Berners-Lee Is Sorry About the Slashes on Wednesday October 14, @08:09AM

Posted by Soulskill on Wednesday October 14, @08:09AM
from the as-long-as-he's-proud-of-the-dots dept.
internet
humor
Stony Stevenson writes "A light has been shone on one of the great mysteries of the internet. What is the point of the two forward slashes that sit directly in front of the 'www' in every internet website address? The answer, according to Tim Berners-Lee, who had an important role in the creation of the web, is that there isn't one. Berners-Lee revisited that design decision during a recent talk with Paul Mohr of the NY Times when Mohr asked if he would do any differently, given the chance. 'Look at all the paper and trees, he said, that could have been saved if people had not had to write or type out those slashes on paper over the years — not to mention the human labor and time spent typing those two keystrokes countless millions of times in browser address boxes.'"
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by sopssa (1498795) * on Wednesday October 14, @08:09AM (#29743463)

    From technical point of view, *not* having the // could create problems more easily. For example if you include port number in the URL and browser or program tries to look at what protocol it is based on value before first :

    http://tech.slashdot.org:80/story/09/10/14/1219215/Tim-Berners-Lee-Is-Sorry-About-the-Slashes
    http:tech.slashdot.org:80/story/09/10/14/1219215/Tim-Berners-Lee-Is-Sorry-About-the-Slashes
    Now if you dont write that http: in browser:
    tech.slashdot.org:80/story/09/10/14/1219215/Tim-Berners-Lee-Is-Sorry-About-the-Slashes

    Now the browser would think the protocol is tech.slashdot.org and tries to pass it to a responsible program instead of loading it. This means you would now need to actually type in the http: which none of us do now. Or dropping general URI support from browsers and IM windows and any other programs (you know all those irc:// spotify: and so on URI's). Or then typing in the :80 would be mandatory.

    • by redhog (15207) on Wednesday October 14, @08:15AM (#29743521) Homepage

      Or remove support for ports and use SRV records to find the port. Which would have saved us tons of work with named virtual hosts, and allowed us to run multiple SSL sites on the same IP...

      • Re: (Score:3, Interesting)

        But, thinking of that.... many many pieces of software allows you to write URLs directly in a body of text, no tags needed, and finds the URLs and turns them into links, but searching for "://". So, what would you regexp for if all you had was a ":"? Normal text quite often does contain colons....

        • by mikael (484) on Wednesday October 14, @10:46AM (#29745629)

          There was a UNIX networking technology some time in the past (The Newcastle Connection [ncl.ac.uk]) which used the /../ symbols to specify a remote path host.

          HP did something similar but used a /net directory instead.

          It would seem simple to just discard the two dots and just have a // to specify the remote host.

        • by jc42 (318812) on Wednesday October 14, @02:00PM (#29748301) Homepage Journal

          So, what would you regexp for if all you had was a ":"? Normal text quite often does contain colons....

          Back in the early 1980s, before the folks at CERN gave us the first browser, there was another notation that was implemented by an assortment of networking software. It originated, as far as I can tell, with The Newcastle Connection (from the U of Newcastle-upon-Tyne" in England), one of the first fully-distributed unix file systems. What it did conceptually was to define a conceptual network directory one level above your root directory, named "/../". So to reference a file on machine X.Y.Z, you'd use a path like "/../X.Y.Z/...". The actual server on each machine typically wouldn't export its "/" directory, but rather would do what web servers do, and supply only a server-root directory (which could also be mounted by other machines by the unix mount command). So if you tried to access the file /../X.Y.Z/some/dir/foo.txt, you'd get the file that the remote machine had at /server-root/some/dir/foo.txt, so files outside the /server-root/ directory would be invisible to outsiders.

          This is, of course, merely another syntax for what the WWW calls "http://X.Y.Z/some/dir/foo.txt", but without the protocol field. The TPC implementation made the file readable or writable, depending on what the permission module allowed, via the usual open(), read(), write(), etc. library routines. This meant that all of the software on your machine was automatically able to use accessible files on other machines without any special coding. As with the Web, you just needed the machine name and the file's location relative to the server-root directory.

          The advantage of the Web's "http://" notation, of course, is that it allow the explicit use of different protocols. TNC's "/../" notation doesn't do that; the implementation gives direct access via the usual file-system routines, and hides the comm protocol inside the kernel's file-system code just as is done with local file I/O.

          Note that the "/../" notation isn't any more difficult to match than "http://", and it's a string that's equally unlikely to occur anywhere but in a TNC-style file reference. And note that there's no problem with adding a ":port" to the machine name with either notation.

          I've sometimes wondered why various browsers, especially the mozilla suite, haven't quietly implemented TNC notation and invited users to start using it. You don't need permission from any standards body to do this. It would only take a few lines of new code, wherever the software parses URLs. You'd have to add "/\.\./" as an alternative to "(\w*)://" at the start of the match, and make 'HTTP' the default protocol if omitted. While you're at it, add another * after the //, so omitting the second / will also work. But that's probably too user-friendly for any real web developer to bother implementing. ;-)

          (Actually, I've done this in a few projects that I've worked on. It doesn't break anything, and when people see that notation, they usually really like it and the new conceptual model of the Net that it puts into their mind. The Net becomes just a large, slow bus connecting millions of machines and their disks, joining them into one huge virtual computer. Replacing a big, messy communication protocol with a big, tree-structured file system gives a major reduction in complexity and points to a much easier way to do things.)

      • by Viol8 (599362) on Wednesday October 14, @08:34AM (#29743723)

        Don't be an ass. Using ports allows someone to set up an ah-hoc server for testing or whatever easily. The last thing they want to do is dick about having to update DNS's bastard child before they can access it from the browser.

      • by andymadigan (792996) <amadigan@NOSPam.gmail.com> on Wednesday October 14, @08:49AM (#29743921)
        What if I just want to run an HTTP server on a non-standard port for development? Not everyone is running a DNS server, nor should DNS records need to be changed so often.

        How would it allow named virtual hosts? The only thing you have at the network layer is the IP address that the message was sent to, that's why HTTPS virtual hosts is difficult to implement.
      • by 3247 (161794) on Wednesday October 14, @09:19AM (#29744331) Homepage

        Or just use a different punctuation character for ports. If you think about how the design of URLs could have been better, other decisions are not cast in stone. The ':' also clashes with the separator in IPv6 addresses (which is an oversight on part of those who designed IPv6).

        http:org/slashdot/tech/story/... (use SRV record)
        http:[org.slashdot;8080]/story/... (use hostname and port)
        http:[123.45.67.8;8080]/foo/... (use IPv4 address)
        http:[2F00:BABA::1;8888]/bar/... (use IPv6 address)
        http:[47.0012.3400.0000.006F.7123.8f23.4012.0c80.0000.00]/ha/... (just kidding)

        • by Random BedHead Ed (602081) on Wednesday October 14, @10:47AM (#29745647) Homepage Journal

          http:org/slashdot/tech/story/... (use SRV record)

          I've always liked that idea (which I've seen before) because it treats subdomains in the same way it treats subdirectories under the document root, which opens a lot of possibilities for creative web hosting schemes (e.g., Slashdot could have put this story on a site at slashdot.org/tech, but when that server's load became high enough to justify a separate host the site could move to tech.slashdot.org - there would be no difference between /tech and tech. from a navigational standpoint).

          Also, the dot-com boom would have been the com-slash boom, which would have been much cooler.

          • by Imsdal (930595) on Wednesday October 14, @10:41AM (#29745547)
            I understand that. But my point is that if your public website does not route from domain.com to www.domain.com automatically, you do not know what customer service is. The fact that you can also have different services running at support.domain.com and docs.domain.com is besides the point.
          • by aztracker1 (702135) on Wednesday October 14, @12:11PM (#29746795) Homepage

            Probably the single biggest reason to have domain.com redirect to www.domain.com is so that you can have specific domains for resources, like images.domain.com ... Further the reason for this is to limit the unneeded transmission of cookies. If your website uses domain.com, then using images.domain.com serves very little good as any cookies assigned to domain.com will be sent with each request. Using www.domain.com, scripts.domain.com and images.domain.com extends the ability to have localized (or no) cookies in the resource-only domains. This is less necessary as more and more browsers are breaking older standards and allowing more than two connections to a given host name at a time. (IE8 extended it to six by default, and IIRC firefox already exceeded this limit as well).

            Regarding the port, this is very much necessary for development purposes, as using high-range ports is the most reasonable method of allowing a User to run a development server instance.

  • From the year 2022 (Score:5, Insightful)

    by suso (153703) * on Wednesday October 14, @08:09AM (#29743467) Homepage Journal

    I used my time modem to login to the Internet3 in 2022 and pulled this review from cdweggbuy (yes, that's a full URL because people thought it was ok to remove gTLDs and also got rid of that pesky http:/// [http] for a VeriLogiSoft Computer Interface device. But of course I got infected by a future virus because my Firefox plugin that matches malicious content didn't know how to identify as a URL.

    Ok back to the present.

    The problem with letting people have what they want is that the majority of people don't understand why things are the way they are. Tim made the right choice,
    he just feels that it is wrong now because he's had to hear people complain about it for the past 15-20 years. But when it comes down to it you need some parts of a URL to indicate what something is.

  • yes (Score:5, Funny)

    by nomadic (141991) <[nomadicworld] [at] [gmail.com]> on Wednesday October 14, @08:12AM (#29743497) Homepage
    not to mention the human labor and time spent typing those two keystrokes countless millions of times in browser address boxes.'

    Has anyone had to do that since NINETEEN NINETY FOUR? Is Berners-Lee still using Mosaic or something?
    • Re: (Score:3, Informative)

      There are a number of https websites I have used/use that (for whatever reason) don't automatically redirect if you simply type the web-address. Hence you have to manually type "https://..." to get the secure site.
  • by Errtu76 (776778) on Wednesday October 14, @08:13AM (#29743511) Journal

    .. we could've had colondot instead of slashdot! I like it!

  • backslashdot (Score:5, Insightful)

    by thhamm (764787) on Wednesday October 14, @08:16AM (#29743531)
    Nah. Slashes are fine, but Microsoft should be sorry about backslashes!
    • Re:backslashdot (Score:4, Interesting)

      by syrinx (106469) on Wednesday October 14, @08:45AM (#29743873) Homepage

      I'm pretty sure they are sorry about that. I can't remember who it was, Paul Allen maybe? But one of the early MS programmers said once that he hugely regretted using / for switches in DOS 1.0. When they added directories in a later version, / was already taken so they had to use \ instead.

        • Re:yeah and (Score:5, Informative)

          by natehoy (1608657) on Wednesday October 14, @09:52AM (#29744833) Journal

          I use the term "forwardslash" fairly frequently, because a good number of times when I say "slash" people ask "which one?" While "slash" and "backslash" are technically correct, "forwardslash" is a descriptive synonym for "slash". Yes, it adds unnecessary syllables, but it's not nearly as bad as the myriad (and sometimes very ambiguous) names for "*" (asterisk, star, splat, bang, etc) and "#" (number, pound, hash, octothorp, etc).

          I do not use "full colon" except when I've had too much curry and am waiting in line at a restroom asking the person in the stall to please hurry up lest they exit the stall into a sudden Superfund Site.

  • We'd all be reading colondot right now.
  • Slashdot (Score:5, Funny)

    by cffrost (885375) on Wednesday October 14, @08:20AM (#29743577) Homepage
    So we could be called "Colondotters?" No thanks.
  • by Anonymous Coward on Wednesday October 14, @08:22AM (#29743585)

    Not to mention all the time wasted trying to explain to people the difference between a slash and a backslash.

  • Doesn't the same logic hold for the person that decided it should be 'http' for hypertext transfer protocol and not just simply 'h'? Yes, http is more descriptive but unnecessary. Had another protocol came along starting with 'h' they could have opted for another letter or -- if they were all taken -- became a two letter protocol. I mean, if we're going to get into pedantic apologies for lack of brevity I would assume the three unnecessary letters in http are a greater crime than the double slashes, right? Of course, rarely do I find myself typing anything other than the domain and TLD (i.e. slashdot.org, mail.google.com, woot.com) so this has really become a non-issue.
  • There you go, it seemed like a good idea at the time. he said.

    If the human race is ever brought before a court to account for itself, that's going to be its entire defence. Nuclear power, the Internet, ID cards, ... that excuse works for everything!

  • It's interesting (Score:4, Interesting)

    by Thyamine (531612) <thyamine@@@ofdragons...com> on Wednesday October 14, @08:28AM (#29743645) Homepage Journal
    I think it's interesting to be able to talk to someone who picked something that affects so many people on a daily basis. Of course, it's a really tiny effect, but very visible. He could have picked two colons or dollar signs or any random thing. It's not often you get to make a decision that ends up being used globally.
  • by magloca (1404473) on Wednesday October 14, @08:30AM (#29743675)

    Back when I wrote a thesis on dissemination of company-internal information via the world-wide web, in 1994 or so, I remember stating that originally, an indication of which network protocol to use was meant to go between the slashes. But since, in the real world, the network protocol was always TCP/IP, this was made the default and whatever was once put between the slashes was dropped.

    Of course, I don't remember the source or anything.

    • by dylan_- (1661) on Wednesday October 14, @08:55AM (#29744011) Homepage

      I remember stating that originally, an indication of which network protocol to use was meant to go between the slashes.

      I don't think so, since the double slashes only apply to Internet schemes anyway. RFC1738 says:

      //<user>:<password>@<host>:<port>/<url-path>

            Some or all of the parts "<user>:<password>@", ":<password>",
            ":<port>", and "/<url-path>" may be excluded. The scheme specific
            data start with a double slash "//" to indicate that it complies with
            the common Internet scheme syntax.

      But if you find another reference, please let me know.

    • by Anonymous Coward on Wednesday October 14, @09:45AM (#29744723)

      Back in the '80s, the double slashes were invented to indicate that the following token was a machine name and not a local directory or local mount-point. The first time I met the double slashes was on an Apollo workstation, which ran Domain, one of the first OSes where you could access remote files and local files without special software--it was built into the OS. At the time, on UNIX, you had to use commands like FTP, or RCP. On Domain, you could also make a soft symlink on your local computer that pointed to another server, so you could move directories around the network and the local programs didn't need to change. (I would not be surprised if the double slashes came from DEC VMS, but I don't know.)

      Compare syntaxes:
      cp //machine1/dir/dir/filename //machine2/dir/dir -- copy a file from machine1 to machine 2
      cp /dir/dir/filename //machine2/dir/dir -- copy a file from the current machine to machine 2

      In RCP the syntax was rather more cumbersome:
      rcp user@machine1:/dir/dir/filename /dir/dir/filename -- copy a file from machine1 to my local machine
      In RCP, the assumption is that a path name is a "remote" path if it contains the character ':'.

      Windows NT and Novell Netware both used double slashes to denote machine names, although Novell's implementation wasn't originally transparent to application programs. Because of the history of PC-DOS, they used backslashes instead of forward slashes.

  • by Anonymous Coward on Wednesday October 14, @08:31AM (#29743691)

    I had occasion to have an email conversation with Berners-Lee at one time (he bought a license for a program of mine), and I asked if he regretted choosing "www" instead of "web". I was very surprised that this was not something he'd change if he could do the whole thing over ...

    Saying "double u double u double u" takes about twice as long as saying "web" so that would have been far more beneficial than worrying about the slashes.

    There was a bit of a drive to use "web" some years ago, but unfortunately that fizzled..

  • DNS (Score:5, Insightful)

    by redhog (15207) on Wednesday October 14, @08:35AM (#29743747) Homepage
    What I wonder is why the designers of DNS put the name in reverse? If the name had been in most-significant-first order, one could have tabcompleted it properly (using history and maybe zonetransfers of smaller zones). Also, if http had included a way to get _parsable_ directory listings, the tab-completion could have gone even further...

    http://edu.wu<TAB>
    http://edu.wustl
    http://edu.wustl.wu<TAB>
    http://edu.wustl.wuarchive
    http://edu.wustl.wuarchive/p<TAB>l<TAB>d<TAB>f<TAB>
    http://edu.wustl.wuarchive/pub/linux/distributions/fedora
    • Re:DNS (Score:5, Interesting)

      by alphaseven (540122) on Wednesday October 14, @10:07AM (#29745049)

      What I wonder is why the designers of DNS put the name in reverse?

      Berners-Lee regrets that as well, from back in 2000... [w3.org]

      I have to say that now I regret that the syntax is so clumsy. I would like http://www.example.com/foo/bar/baz [example.com] to be just written http:com/example/foo/bar/baz [com] where the client would figure out that www.example.com existed and was the server to contact. But it is too late now. It turned out the shorthand "//www.example.com/foo/bar/baz" is rarely used and so we could dispense with the "//".

  • gopher, wais (Score:3, Informative)

    by Anonymous Coward on Wednesday October 14, @08:36AM (#29743763)

    At the time there was also gopher and WAIS- both of which were supported by mosaic. The protocol was necessary to differentiate.

  • by objekt (232270) on Wednesday October 14, @08:41AM (#29743825) Homepage

    like when I open a local file in my browser I get "file:///"

  • by Anonymous Coward on Wednesday October 14, @08:47AM (#29743893)

    It is explained by TBL at http://www.w3.org/People/Berners-Lee/FAQ.html#etc

    "I wanted the syntax of the URI to separate the bit which the web browser has to know about (www.example.com) from the rest (the opaque string which is blindly requested by the client from the server). Within the rest of the URI, slashes (/) were the clear choice to separate parts of a hierarchical system, and I wanted to be able to make a link without having to know the name of the service (www.example.com) which was publishing the data. The relative URI syntax is just unix pathname syntax reused without apology. Anyone who had used unix would find it quite obvious. Then I needed an extension to add the service name (hostname). In fact this was similar to the problem the Apollo domain system had had when they created a network file system. They had extended the filename syntax to allow //computername/file/path/as/usual. So I just copied Apollo. Apollo was a brand of unix workstation."

  • I like them! (Score:5, Insightful)

    by sootman (158191) on Wednesday October 14, @09:24AM (#29744411) Journal

    I *like* unique, easily-visually-identifiable structures. a@b.c is an email address. If you're in the U.S. you know that XXX-XXX-XXXX is a phone number and that XXX-XX-XXXX is a social security number. You know that X/Y/Z is a date, even if it's not always clear if it's M/D/Y or D/M/Y.

    "://", while verbose, is very clear and you always know EXACTLY what it is and what it means--that it's the START of a COMPLETE Web address. If it would have been just a : or a / it wouldn't always be clear because those symbols, by themselves, are often used elsewhere and it would lead to confusion.

    Now if we could just teach a planet full of lusers the difference between "slash" and "backslash." People always say "backslash" because they've heard computer guys say it every so often when talking about logging onto MS servers so they call EVERY slash a backslash. Damn you Paul Allen!!! [nytimes.com]

  • OK, maybe it could have been reduced to one slash, since there's no :/ smiley elsewhere in the URL pattern, but you need to be able to distinguish relative URLs from absolute ones. Without some unique token sequence that was guaranteed not to occur elsewhere in a URI you're going to run into problems. Start removing components from a fully specified URI and see how quickly you run into ambiguities:

    method://username:password@host:port/paths/terminal?token=value&token=value

    The reasons for the // convention for the "super root" in networks like OpenNet and FutureNet, that he was copying, are still valid in URIs. You need something that's easily parsed by computers, and easily recognized by humans. When I first saw the syntax I was all "slash slash whiskey tango foxtrot?", but after using it for a while I was convinced that I was wrong and he was right, and even if he's forgotten why... I still think he was right the first time.

  • by clone53421 (1310749) on Wednesday October 14, @11:18AM (#29746111) Journal

    infront

    That is not a word.

    the "www" in every internet website address

    Many website addresses don't begin with "www", including the address of the page you're currently reading.

    The physicist admitted that if he had his time again, he might have made a change, or more specifically, two.

    Well, what's the other one? I'm waiting, don't keep me in suspense here... (Not to mention, correctly speaking he would have done it differently, not have made a change.)

    "Boy, now people on the radio are calling it ‘backslash backslash’," Sir Tim told his audience, even though he knows they are, in fact, forward slashes.

    He does? Whew, glad they cleared that one up.

    Showing them his index finger he added: "People are having to use that finger so much."

    I type the slash key with my pinky finger, not my index finger. I even checked the British keyboard [google.com] to make sure it's not a culture disconnect. The British keyboard seems to have it in the same place as the keyboard I'm familiar with.

    He knows that no one has calculated the number of exasperated groans emitted at the sight of a "syntax error" message generated by the grave omission of a single slash.

    I've never seen such an error message, and both Firefox and IE correctly convert http:/google.com to http://google.com [google.com].

    Nowadays web browsers such as Explorer

    Explorer is Windows' file system manager. The web browser is called Internet Explorer.

    the British scientist who created the world wide web

    Sir Tim Berners-Lee, who wrote the code that transformed a private computer network into the web two decades ago

    The physicist is credited with being the architect of the world wide web, which was to transform the internet into something usable and understandable by more than just computer programmers.

    Shouldn't they say it a third time, in case someone missed it the first two times?

    Today the URLs — better known as web addresses — that Sir Tim created, beginning http://www, are familiar to anyone navigating their way around the internet.

    And here's with the www business again. Stop it, I say.

    • Every time I set-up a sub-domain for work I always have to tell my boss "http://subdomain." out loud first, in the hope that he'll not prefix "www".

      Sometimes he still just does both, then asks me why it isn't working. This results in a lengthy conversation where we're both saying "http colon slash slash" and "www" to each other. Makes me want to stab him in the face.

Support Bingo, keep Grandma off the streets.