Internet Explorer 11 changes the User Agent string


Among the innovations in terms of compatibility introduced with Internet Explorer 11, one of the main concerns the modification of the string of the User Agent. It is that string and that set of parameters with which it is possible, on a server, to identify the user’s browser and implement the strategy of the so-called browser sniffing to serve site versions or ad hoc application for a specific software navigation.

The new Internet Explorer 11 User Agent string

The new Internet Explorer User Agent string on Windows 8.1 looks like this:

<pre class=”brush: php; html-script: true”>
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

This instead of the configuration on Windows 7:

<pre class=”brush: php; html-script: true”>
Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

In the string, the parameter Windows NTfollowed by the version number identifies the operating system, the parameter Trident/7.0refers to the version of the browser rendering engine, the parameter rv.11.0to the browser version, while the last parameter like Gecko, instructs the server on the fact of treating the browser as if it were a navigation program based on Gecko, the rendering engine at the base of Firefox.

To fully understand the novelty, it will be sufficient to compare the new string with that of Internet Explorer 10:

<pre class=”brush: php; html-script: true”>
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)

As you can see, the parameters compatible no longer appear in the string of IE11 MSIE. This last parameter was the one to which the developers have been supported over the years to identify the Microsoft browser and to use code versions (CSS, Javascript, etc.) ad hoc but not always adhering to those shared standards that have long been at the heart of Microsoft’s Web strategy.

What does this change involve? And above all, who can interest?

No more ‘legacy’ code, hack and workaround

The first consequence is that when viewing a site or a web application with IE11 the user will receive the same version, the same code, served to those who surf with Firefox (or in any case with a browser with full and advanced standards support), and this even if you previously used specific versions through browser identification.

It is as if the browser is presented to the server saying: “I’m like Firefox or Chrome, I can manage the Javascript and CSS code, so I send the standard version of the site to those who use me”.

In fact, those who use Internet Explorer 11 will no longer receive legacy and non-standard code optimized in any way for the Microsoft program, even in the form of hacks and workarounds. You will not run the risk, using a program that fully supports the standards, to be provided with a version of the site that may even be problematic since those hacks are no longer supported and valid.

In summary, as specified by Microsoft: this change prevents the problem that IE11 can be mistakenly identified as one of the previous versions.

No ‘browser sniffing’ but ‘feature detection’

This consideration leads us to answer also the second question. Even if it is not possible to fully evaluate the consequences of this change on a case-by-case basis, one thing seems certain: with this choice Microsoft seems to want to give the final blow to the browser sniffing strategy in favor of itself sponsored by feature detection, the one for which the developer does not identify the browser but the features it supports to optimize the code.

The message is clear to developers who have used browser sniffing in the past to serve specific code for Internet Explorer: this practice is no longer effective, it is no longer followed.

And if it were still necessary, in very particular conditions, to identify Internet Explorer 11 starting from the User Agent string? In that case, the suggestion is to take advantage of the parameter related to the rendering engine, that is Trident/7.0.


Please enter your comment!
Please enter your name here