Hacker News new | past | comments | ask | show | jobs | submit login

The ':' is to separate the scheme from the bits that are specific to the scheme. The // is to indicate a hostname and not a directory. http:/test is a valid url indicating a relative path on the machine that the current resource came from, http://test is a url that specifies a resource on a machine mapped to the TLD test. The double slash removes the ambiguity. It really is two bits, a ':' and the '//'

Other possible sources of confusion:

http://test.com:80/

You could then get:

http:/test.com:/

Position would give it away, but, if you then complicate matters further by using default protocol (in your broweser http) it looks like:

:/test.com:/

In many browsers

://test.com:/ is perfectly legal.

Of course, you could strip that down further by dropping the default port colon to get:

://test.com/

See here for a much longer (and probably better :) ) explanation:

http://tools.ietf.org/html/rfc1738

I hope that helps !




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: