Affects: IE6, IE7
Status: [By Design]
The default port for most Web Servers is port 80. However as a developer, you might have multiple Web Servers running, or special Web Interfaces to your Database or Application Server running on other ports.
Where is this going? Well as a developer, you are likely typing in your site/application hostname in the location bar several times a day while developing/testing.
http://localhost is fairly easy to type, as is http://barney (if thats what your host is named). However the good folks making Browsers made "http://" the default, so you can save yourself 8 (eight) keystrokes if you leave it out. localhost or barney should work just fine.
Now lets say you are trying to get to your Application Server Web Console:
JBoss: http://barney:8080/jmx-console
WebSphere: http://barney:9091/admin
IIS: http://barney:8172/
Ruby On Rails: http://barney:3000
or a web server on a portable USB stick or iPod
http://localhost:81/
If you type in the full URI for these consoles/alternative Web Servers, you will get what you expect.
Even if you drop the "http://" part, you will get what you expect (console/web server), since the browser defaults to http://. However if you are using IE 6 or IE 7, you will get an error!
The webpage cannot be displayed
Its a minor issue, but if you are typing URLs every day, little things like this will drive you nuts.
Status Update:
Well it turns out this isn't a bug. Eric Lawrence from the IE Development Team (and Author of Fiddler Web Debugging Proxy) points out that
somevalue:someothervalue
is a valid URI, and thus IE is doing the correct thing, looking for an application to handle the URI.Known Workarounds:
Since this really isn't a bug, there is no workaround however if you pre-pend your hostname with
//
you will get the page you expect.So:
//barney:8172/ will actually work.
Submit a bug