From Seo Wiki - Search Engine Optimization and Programming Languages
| This article does not cite any references or sources.
Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (January 2008)
Browser sniffing is a technique used in websites and web applications in order to determine the web browser a visitor is using, and to serve browser-appropriate content to the visitor. This practice is sometimes necessary because of incompatibilities between browsers in areas such as the interpretation of HTML, cascading style sheets (CSS) and the Document Object Model (DOM). While the World Wide Web Consortium maintains up-to-date central versions of some of the most important Web standards in the form of recommendations, in practice no software developer has designed a browser which adheres exactly to these standards; implementation of other standards and protocols, such as SVG and XMLHttpRequest, varies as well. As a result, different browsers will display the same page differently, and so methods have been developed to detect what web browser a user is working with so as to ensure consistent display of content.
This code is run by the client computer, and the results are used by other code to make necessary adjustments on client-side. In this example, the client computer is asked to determine whether the browser can use a feature called ActiveX. Since this feature is proprietary to Microsoft, Inc., a positive result will indicate that the client is running Microsoft's Internet Explorer.
Client-side sniffing makes use of features on the client computer. These features must be available and active in order for the process to work. However, since the web server has no control over whether the client actually has the features available, client-side sniffing is unreliable. It is possible, however, to determine many features of the browser without depending on the client configuration. The web server communicates with the client using a communication protocol known as HTTP, or Hypertext Transfer Protocol. Information communicated between client and server usually includes information about the browser being used to view the web site. See user agent for more details on this.
Browser sniffing can produce information on different aspects of the browser used. For example, it can detect which type of browser is being used (e.g., Internet Explorer, Netscape Navigator, Mozilla Firefox, Google Chrome, Opera, Apple Safari) and which version of the software the client computer is running. Based on this information, the web server can provide a web page which will be structured appropriately for the user agent. Since browsers can vary significantly in their interpretation of a page, this can be an important consideration for web designers; consequently, there are a large number of scripts for browser sniffing available on the Internet and even commercial solutions such as BrowserObject or BrowserHawk.
Issues and standards