"Domain Guessing" enhances the Navigation toolbar's "Location" field by guessing other domain names when a user's original request cannot be found. Let us assume that the user's default domain name is "mcom.com".
If you type "mozilla", and there is no mozilla.mcom.com, the browser should display:
Domain Guessing intercepts the DNS "hostname not found" error, and resends the request to a guessed hostname that might use the correct domain. Domain guessing will attempt to add "www." to the front and/or ".com" to the end of your request, and try again:
|missing "com" suffix,
if starts with "www."
|missing "www." prefix||mozilla2.org||www.news.org|
Domain Guessing happens only if an actual request has been sent and fails, so not everything typed in URL bar is affected. (Type: "open source" and you get a protocol error). If Internet Keywords is on, it has priority over Domain Guessing and will intercept the majority of guessable cases.
Domain Guessing can be enabled/disabled via Preferences | Navigator | Smart Browsing | Domain Guessing (Mozilla 1.3 and later, see bug 115539). Domain Guessing is controlled by a several preferences.
browser.fixup.alternate.prefix - "www."
browser.fixup.alternate.suffix - ".com"
This feature is currently on by default, but daily builds might ship with the preference off during test periods.
Why is it called Domain Guessing and not "autocomplete", "hostname completion", "domain searching" etc. ?
Similar behavior has been part of both Internet Explorer and Netscape Communicator for a long time, but there was no simple name for the behavior. Occasionally described as "commercialization" or ".com"-ification or "cannonicalization", none of these names was good description.
The main reason several contributors settled on this name is that the browser is actually guessing that that the new domain name might work. The guess is two-fold: the browser does know the user means "www.hostname.com", and the browser does not know that "www.hostname.com" actually exists in DNS. This is not auto-completion, because the browser is getting an error for what you typed, and re-trying with a second guess without asking the user for permission. Autocompletion would be something like the menu bar offering to turn what you typed into "www.hostname.com", "www.hostname.net", etc. in the autocomplete pulldown menu. In other words, autocomplete would complete the user input proactively, not the DNS request after an error occurred. (Firefox does have keyboard-shortcut autocompletion, Mozilla does not).
Hostname completion, domain searching, and similar terms would be too easily confused with DNS client (resolver) features that have specific meanings and more sensible behaviors.
Domain guessing has the obvious convenience of allowing someone to get to www.*.com sites by typing just the middle word. In that sense, it is a very fast and dirty form of "URL resolution", converting typed user input into a displayed page. Another form of URL resolution is Internet Keywords, which asks a remote server what page should be displayed.
Domain Guessing has a couple important limitations:
Domain Guessing sends out extra DNS requests without warning. The status bar will show that it is searching for "www.hostname.com"), but in most cases, many additional, spurious DNS requests will be sent (see bug 40082). Even if that behavior is fixed, Domain Guessing is still sending out an extra DNS request in cases that the user is not expecting.
- Inconsistent use
Domain Guessing affects URLs that have only a hostname (http://mozilla/index.html) but not fully qualified domain names, "FQDNs" (http://www.mozilla.org). Domain Guessing occurs in some cases, and not others, depending on the URL is accessed. Clicking on inline links in MailNews, Open New Window and Open New Tab seem to trigger this behavior. Domain Guessing's behavior is also affected by Internet Keywords, so the behavior in any given situation is hard to predict (see bug 79655).
- Incorrect error messages
If try "hostname", the error message will say that it failed to find "www.hostname.com", rather than display an error about "hostname". This can be especially confusing if the borrower's guess was wrong, and you simply wanted to go to a local system called "hostname" that does not exist or you misspelled (see bug 66183).
- Flawed usage of DNS
DNS was created to provide naming for systems on the Internet, so that administrators would not have to remember the IP address. In this sense, DNS is like a phonebook, but the naming system was designed for network administration, not as a directory for end users. This feature treats ".com" as the 411 for DNS errors.
Internet hype has come and gone but the phrase "dot com" as stuck. This feature is a relic of those times, because the top level of the DNS name space was is ".", not ".com", and as mozilla.org contributors know, there are more top level domains (TLDs), than just ".com". The irony of this feature Mozilla will send a request for "mozilla" to "www.mozilla.com", not "www.mozilla.org."
The number of top level domains is growing, as is the number of sites in non .com top level domains. If you were to guess what a user mean to type, the best single choice would be ".com". However, a modern browser, designed for the current networking environment, needs to understand the current and future structure of DNS, and give users better ways of going to ".net", ".org" and country domains.
Behavior like Domain Guessing has made ".com" the TLD of choice for anyone concerned about maximizing network traffic, which means that the namespace is very crowded, and full of trademark conflicts and name collisions. Since DNS registrations are first-come first serve, the conflicts can create serious problems. One has to wonder how many U.S. schoolchildren have been sent to a porn site when they were doing basic research on the U.S. Federal government and typed "whitehouse" into the browser.
For people involved in the configuration and management of DNS (not just the people that are making money on selling DNS domains), this is a serious structural problem with DNS, exacerbated by features like this.
Additionally, your network administrator maybe using a feature called "negative DNS caching". This makes your surfing experience faster, but domain guessing has a tendency to fill up the cache with worthless, nonexistent entries. This wastes sever resources and may have the effect of slowing down your overall network performance.
When domain guess changes the hostname, the URL you typed will go to that server, even if you intended it. If the URL contains valuable information (project names, ship dates, product titles, descriptive file names), the destination site will receive the URL. Remember, sites that you inadvertently access have no obligation to protect the privacy of your request. If they want to post a list of invalid requests, and the networks they came from, there is nothing you can do. Gagan summarized this best in bug 40082). Because of the possibility of various forms of the "Princeton" attack, transmitting the URL to the wrong site can help an attacker copy information that is available only on your local network.
- Does not work via Proxy Servers
Proxy connections receive DNS errors differently, and cause URL bar to give up and not use Internet Keywords (see bug 2875). Domain Guessing also works counterintuitively with "No Proxy" configurations (see bug 190324).
Suggestions and feedback can be made in bug 186032.