Internet Explorer and Connection Limits


From time to time, I’ve heard the question: “Why can IE only download two files from the same site simultaneously?” 

Some more savvy users observe that this limitation probably makes sense in dialup cases where bandwidth is constrained or when lots of small files are being downloaded, since the TCP/IP slow start algorithm comes into play.

But for those of us lucky enough to be on broadband, this limitation can be annoying.  If I want to download a large number of large files, I have to sit around and wait for them to complete, two-by-two.  Why does IE behave this way while some other browsers do not? 

It turns out that this is a case where IE strictly follows the standards– in this case, RFC2616, which covers HTTP1.1.  As noted in the RFC:

Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy.

Saavy web developers can take this connection limit into account and deliver their data from multiple domains, since the browser will open up to two connections per domain.  You can see this trick on pages like Office Online Templates using Microsoft Fiddler or another network monitoring tool.  In this case, two domains (office.microsoft.com and i.office.microsoft.com) split the load, permitting up to four simultaneous connections.

If you’d like to experiment with higher connection limits inside IE, have a look at http://support.microsoft.com/kb/183110.  Note that changing this setting violates HTTP RFCs, and hence might impact compatibility with servers and proxies. 

-EricLaw

PS: Another web-performance tip: When generating hyperlinks, always include a trailing slash if possible.  For instance, navigating to http://msdn.microsoft.com/ie takes one more roundtrip than http://msdn.microsoft.com/ie/.  When the browser navigates to the /ie url, the server merely sends down a 301 to the /ie/ url.  Both links work, but the second version is faster.

Updated title – 4/12/05


Comments (87)

  1. Anonymous says:

    IE strictly follows standards?

    🙂

  2. Anonymous says:

    But IE doesn’t support HTTP pipelining, and this limit was chosen with fully-featured HTTP/1.1 clients in mind.

    HTTP/1.1 lacking support for pipelining is even slower than HTTP/1.0 (http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html)

  3. Anonymous says:

    So, this behaviour has significant impact to end user experience. And you chose to follow standards? Another amazing surprise from Microsoft.

  4. Edge says:

    Eric:

    If you read RFC 2119 (http://www.faqs.org/rfcs/rfc2119.html), you’ll notice the following definitions for "SHOULD" and "SHOULD NOT"–

    3. SHOULD This word, or the adjective "RECOMMENDED", mean that there

    may exist valid reasons in particular circumstances to ignore a

    particular item, but the full implications must be understood and

    carefully weighed before choosing a different course.

    4. SHOULD NOT This phrase, or the phrase "NOT RECOMMENDED" mean that

    there may exist valid reasons in particular circumstances when the

    particular behavior is acceptable or even useful, but the full

    implications should be understood and the case carefully weighed

    before implementing any behavior described with this label.

    If you allowed more than 2 transfers at once you would *not* be violating the RFC. If, on the other hand, the RFC had used the words "MUST" and "MUST NOT", I’d agree with you. 😉

  5. Anonymous says:

    "Should" is incompatible with the word "strictly."

    This article lowers the credibility of the IE team even further.

  6. Anonymous says:

    So IE follows standards when it suites them, but not other times? Is this the reason why you can not have two downloads at a time, or is this a timely excuse to not allowing this. Most standards set forth are ignored and broken by Microsoft, and you expect us to believe that Microsoft strictly follows standards in this case? I think this is an excuse to why this is not allowed, probably in a cheap attempt to plug up some security whole found in IE.

  7. Anonymous says:

    Yikes!

    Guys, I think you should all get together in Redmond and standardize the way you read standards!

    As others have pointed out, "SHOULD" is a recommendation, "MUST" is the explicit guideline.

    But I’ll give you credit, you erred on the side of the standard here, which is something you should push forward into more areas for IE7.

  8. Anonymous says:

    As far as I know, the simultanous connection limit in the RFC has been chosen to prevent DOS attacks. Imagine what happens when a client is given the oportunity to open a huge amount of connections in the same time. Correct me if I am wrong here.

  9. Anonymous says:

    From RFC2616:

    "one that satisfies all the MUST level requirements but not all the SHOULD level requirements for its protocols is said to be "conditionally compliant."

    So, are those other browsers properly representing themselves as "conditionally compliant" to HTTP specifications?

  10. Anonymous says:

    Stop bitching everyone :p

    IE has followed the guidelines. Whether it’s a SHOULD or MUST, that’s always a good thing.

  11. Anonymous says:

    Until I’ve read this article I thought this limitation is a webserver limitation. Didn’t test it too much (may be a server limitation on the site I’ve tried) but Firefox has the same limitation (at least the default installation I’m using).

    Now: I’m not a Microsoft fan, I haven’t used IE for anything else then testing in the past year or so, but replies like this:

    > This article lowers the credibility of the IE team even further.

    ….

    I’m speechless

  12. Anonymous says:

    All this goes to prove that, as far as Microsoft are concerned, "You’re damned if you do, damned if you don’t". They don’t follow standards, they get flamed. They do follow standards, they get flamed. What’s interesting is that a lot of people who want IE to follow standards REALLY mean that they want IE to follow standards UNLESS it’s a ‘nicer’ experience to go against the recommendations. FWIW, I use Firefox and IE on different machines and my only complaint of IE is it’s lack of tabs.

  13. DaveP: SHOULD isn’t a recommendation. You’re mixing IETF-standards lingo and English.

    A "SHOULD" is really: "You REALLY, REALLY, REALLY have to have a really good reason for violationg this clause".

    And making users downloads faster isn’t a really, really, really good reason.

    Protocol standards (like HTTP) are a lot more persnikity than rendering standards (like SGML/HTML) – the consequences of violating HTTP protocol standards are far more severe.

    That’s why the default is to abide by the standard.

  14. Anonymous says:

    > What’s interesting is that a lot of people who want IE to follow standards REALLY mean that they want IE to follow standards UNLESS it’s a ‘nicer’ experience to go against the recommendations.

    What on earth are you talking about? Nobody is saying that Microsoft should ignore this part of the specification.

  15. Anonymous says:

    Pornel had it right, just as one "should" only allow 2 simutanious connections…

    "HTTP implementations SHOULD implement persistent connections."

    MS can’t claim that they do something to "follow the standard" when they don’t follow important portions of it. This would be like claiming they support PNG when they don’t support 32b PNG transparency.

  16. Anonymous says:

    <<"HTTP implementations SHOULD implement persistent connections." >>

    … And Internet Explorer does implement persistent connections. What are you getting at?

  17. Anonymous says:

    What annoys me about IE is how the 2 connection restriction applies even when a Connection: Close header is sent.

    For example, suppose I am downloading two large files from a site. Both of the connections have a Connection: Close header, but IE refuses to load any other pages from the site for the duration of the downloads. This is very confusing for users as the site appears to have gone down, and it’s pretty annoying to have to use a separate host or port number to work around this. It also causes even more trouble while writing software that uses XMLHttpRequest because javascript only allows those requests to target the same server that generated the page.

    My interpretation of the passage in RFC 2616 is this: "A client should never have more than 2 connections which are not currently in the middle of a request (connections that are persisting) to a single server."

  18. Edge says:

    @LarryOsterman:

    << A "SHOULD" is really: "You REALLY, REALLY, REALLY have to have a really good reason for violationg this clause". >>

    You’re using your own definition of what "SHOULD" and "SHOULD NOT" infer. RFC 2119 (http://www.faqs.org/rfcs/rfc2119.html) spells out what those mean, and it doesn’t say "You REALLY, REALLY, REALLY have to have a really good reason for violating this clause". It only says the reasons for violating the clause must be understood/considered. In other words: it is *not* a requirement in order to be in compliance with the RFC.

  19. Anonymous says:

    But why do people that post comments are always against IE ?

    I’m a webmaster among many others, dealing with 70’000 people a day. I do like IE, altough it has some drawbacks, so do Firefox (I’m currently using Maxthon for tabbing under IE, because I can bear Firefox, whereas I’m a developer, following the W3C rules).

    So now, people are angry because IE follow the rules ? Hey, guys, we talk about HTTP, which mean Hyper TEXT tranfer protocol ! So you’re dealing with Text files (HTML, XML, XHTML and so on) ! Have you ever run a web server ? Be overloaded because one run HTTTrack on your web site ?

    So HTTP is for HTML, not for larges files. FTP is there for files, remember, it means FILE transfer protocol !

    So don’t worry, if you don’t like IE, just go away, run Firefox, be "secure" as it claims (security issues go out every two weeks, nevermind ;o), and stop being painfully aggressive.

    Sorry for my bad English, and I _personaly wait for the great IE to come, IE 7, reading every article of this wonderful blog, and hope it would be as great as it is written here.

    Best regards to understanding people.

  20. Anonymous says:

    "When generating hyperlinks, always include a trailing slash if possible."

    So why is the example link the only one in this article that has a trailing slash? 😉

    Thats what you get from oversimplifying things … the slash is only needed for *folders*

  21. Anonymous says:

    Edge: "[RFC 2119] only says the reasons for violating the clause must be understood/considered."

    Yes. Microsoft understood/considered the reasons and decided it wasn’t something worth doing. What is your point?

    And, as it is a SHOULD and not a MUST, they provide a mechanism for changing the behaviour – mentioned in the KB article linked above.

    In my opinion IE does the right thing here. If you don’t like the standard, Microsoft’s implementation is not the place to direct your comments at.

  22. Anonymous says:

    <<Thats what you get from oversimplifying things … the slash is only needed for *folders* >>

    What part of "if possible" didn’t make sense to you?

    The whole point is that the slash ~isn’t~ required for folders, but it’s faster if you use it, because you avoid the roundtrip for the 301.

  23. Anonymous says:

    Quote: "It turns out that this is a case where IE strictly follows the standards"

    I think the main problem people are having with this article (myself included). Is that there is so much stuff about I.E not following standards, that when they DO follow standards it seems almost comical/hypocritical.

    For instance in a previous blog "IE and Standards", MS stated…

    Quote:

    "When we shipped IE 6.0, we finally fully supported CSS 1, and had some pieces of CSS2 implemented as well."

    Which got the immediate reply of…

    Quote:

    "By ‘fully supported CSS 1’, do you mean ‘mostly passed the W3C’s basic test suite for CSS1’, or do you mean ‘had some sort of detectable behaviour for every feature of CSS1’? Because I KNOW you don’t mean ‘correctly supported all of CSS 1’"

    I completely agree with this statement! So if MS are telling us CSS1 was "fully supported" in IE6 even though it wasnt, then maybe the reason they have given us for the 2 download maximum is untrue as well?!

    Basically, not everything thats told to us is the 100% gospel truth.

    Dont believe everything you hear and read.

  24. Anonymous says:

    "It turns out that this is a case where IE strictly follows the standards– in this case, RFC2616, which covers HTTP1.1. As noted in the RFC:…"

    so you admit in other cases you don’t? i find that ironic seeing this blog tried to deny that CSS was a proper standard 5 enties ago and that leaked info suggests there isn’t proper support for CSS2 in IE7. If IE7 ships with longhorn in 2006, 5 years after XP shipped with IE6(as i recall it did?) then we might be stuck coding for a browser that doesn’t support CSS2 properly until 2011?

    ok, went a little off tpoic there 🙂 what i wanted to say about multiple downloads is that it wouldn’t be so bad if there was a way to queue downloads so you know which links you’ve already clicked. then if you really want to have more than 2 concurrent downloads you can get a download manager

  25. Anonymous says:

    I’ve always wondered why I’ve only been able to download a maximum of 2 large files from the same website. I thought that this was a limit applied on the…

  26. Anonymous says:

    Also, Internet Explorer doesn’t seem to be able to download files bigger than 2GB over http or ftp. Ncftpget and curl seem to be two of the few ftp and http agents with the ability to download these types of files.

  27. Anonymous says:

    May I ask whether it is necessary to physically add a 301 redirect from http://www.mydomain.com to http://www.mydomain.com/ to avoid seeing 301 errors in my Web stats… or is that superfluous . I read on one of the main SE forums someone suggested doing this … or have I misunderstood the direction .. the reference to doing such a redirect was referenced in my last post: http://www.marketingdefined.com/blog/2005/04/fix-established-sites-drop-in-rankings.html

    Please indulge me by clarifying the above.

    Also, I would be most appreciative if anyone expert enough at this Blog could tell me why I cannot see any background or outline colours in my IE6 browser .. the colors show up fine when checking my web design pages in Netscape, so it cannot be a display problem. I have the necessary "ticks" in my IE "Advanced" options, and have not ticked the pertinent column in "Accessibility" – so what could be causing the lack of background colors and outline colors only in the IE6 browser.

    I am desperate to get this problem fixed .. and would be so grateful for any help.

    Many thanks

    Roseanne

    my email addy is: roseanne@marketingdefined.com if some generous web designer out there could enlighten me on the 301 and lack of color display.

  28. Anonymous says:

    If I want to download multiple files (usually large files), I will simply open up a new browser exe. Opening additional windows via the File > New > Window does not increase the limit, but starting up an additional copy of IE does.

    -Andrew

  29. Anonymous says:

    > May I ask whether it is necessary to physically add a 301 redirect from http://www.mydomain.com to http://www.mydomain.com/ to avoid seeing 301 errors in my Web stats… or is that superfluous

    That is not necessary. The URIs http://example.com and http://example.com/ mean exactly the same thing.

    It’s when you are referring to subdirectories that a 301 is necessary. For example, http://example.com/foo would redirect to http://example.com/foo/

    Virtually all web servers come preconfigured to do this redirection. What this article talks about is that when you are linking to a directory, include the trailing slash to make the redirect unnecessary (and thus speed up your website by causing one fewer request).

    I’m not sure what you mean by seeing 301 "errors" in your web stats. They aren’t errors, they are redirects.

    > Also, I would be most appreciative if anyone expert enough at this Blog could tell me why I cannot see any background or outline colours in my IE6 browser

    Internet Explorer gets a lot of CSS wrong, so it could be that.

    Are you sure you are writing correct CSS? Just because it works in a browser, it doesn’t mean it’s correct. Use http://validator.w3.org and http://jigsaw.w3.org/css-validator/ to check that your code is correct.

    This isn’t really the place for troubleshooting CSS – try the comp.infosystems.www.authoring.stylesheets newsgroup.

  30. Anonymous says:

    Jim,

    Many thanks for the clarification of the trailing slash and 301 redirects.

    The comment about the lack of color was directed to the IE6 blog, for one main reason … the fault has nothing to do with my CSS design skills .. the colors in the IE browser do not show up even under ordinary web surfing/browsing .. I can surf to any page, and will not see the outlines of tables, background colors etc. For example, with pictures such as a .gif or .jpeg -the colors in those show up fine .. but no outline colour or background colors come up at all for the rest of the page.

    I’ve had this problem for some 8 -9 months, and only realised it was unique to IE, when I downloaded the Netscape browser, to ensure my web design pages show up correctly.

    I am 100% certain this is not CSS related .. and would so much appreciate the right direction to turn to. My computer was under warranty, but it is nothing to do with the hardware/software as far as the manufacturer’s Customer Support is concerned and they recommended I get in touch with IE direct.

    If there is anywhere you could point me to I would be most grateful … I have posted at Forums and many other places, but have had no luck with any responses.

    Many thanks for your time to review this.

    Roseanne

    email: roseanne at marketingdefined.com

  31. Anonymous says:

    > IE strictly follows standards?

    Not if the Web Standards Project’s Acid2 test – http://webstandards.org/act/acid2/ – is any indication. Other browsers do not-so-well, but IE is outright comically bad at it.

  32. Anonymous says:

    > Also, I would be most appreciative if anyone expert enough at this Blog could tell me why I cannot see any background or outline colours in my IE6 browser

    I’ve got the same problem and I wasn’t able to find any solutions. If anyone has the solution, plz send it to me also.

    info@vircos.nl

  33. Anonymous says:

    > Also, I would be most appreciative if anyone expert enough at this Blog could tell me why I cannot see any background or outline colours in my IE6 browser

    I’ve got the same problem and I wasn’t able to find any solutions. If anyone has the solution, plz send it to me also.

    info@vircos.nl

    Virco



    Finally found the solution, the solution can be found on:

    http://support.microsoft.com/?kbid=277008

  34. Anonymous says:

    I’d be interested to hear about the pipelining. Has IE team measured whether it would really provide considerable speed up?

  35. Anonymous says:

    "So now, people are angry because IE follow the rules ? Hey, guys, we talk about HTTP, which mean Hyper TEXT tranfer protocol ! So you’re dealing with Text files (HTML, XML, XHTML and so on) ! Have you ever run a web server ? Be overloaded because one run HTTTrack on your web site ?"

    You need to re-configure your server. Ive handled this, plus a slashdotting at the same time no problem.

    "So why is the example link the only one in this article that has a trailing slash? 😉

    Thats what you get from oversimplifying things … the slash is only needed for *folders*"

    Not if you are using apache. http://osnn.net/index.php/ or http://osnn.net/index.php/test (This will break certain things that rely on relative paths.)

    One last question, when is IE going to implement pipe-lining? That would speed up the browsing experience a whole load. Also, when is CSS 1/CSS 2/CSS 3 going to be fully supported? Safari, and Firefox are already fast on their way to becoming fully compliant, and still IE lacks at it.

    PS: If you configure your web server, you don’t need the / on certain paths, even if it is an folder.

  36. lolomarx says:

    让javascript跑得更快

    作者:Cal Henderson

    下一代wed应用让javascript和css得堪大用。我们会告诉你怎样使这些应用又快又灵。

    建立了号称&amp;ldquo;Web 2.0&amp;rdquo;的应用,也实现了富内容(rich…

  37. Andy says:

    建立了号称“Web 2.0”的应用,也实现了富内容(rich content)和交互,我们期待着css和javascript扮演更加重要的角色。为使应用干净利落,我们需要完善那些渲染页面的文件,优化其大小和形态,以确保提供最好的用户体验——在实践中,这就意味着一种结合:使内容尽可能小、下载尽可能快,同时避免对未改动资源不必要的重新获取。

  38. DBA notes says:

    现在很多中小网站(尤其是 Web 2.0 站点) 都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解,抛砖引玉,以期能引出能具价值…

  39. clefoo says:

    InternetExplorer浏览器在同一时刻只能从同一域名下载两个文件。 至于原因请见MSDNBlogs:《InternetExplorerandConnectionLi…

  40. shawnliu says:

    zzreview:Yahoo!在frontendperformancetuning方面的确走得领域的前面,总结出来的优化rules大部分都能够给我们带来灵感,然后让我们用于我们自己的网站性能调…

  41. Here I will be going in-depth on how a browser maintains HTTP connections with the Server. Something

  42. yangzk says:

    高性能网页开发的14条军规

    zzreview:Yahoo!在frontendperformancetuning方面的确走得领域的前面,总结出来的优化rules大部分都能够给我们带来灵感,然…

  43. kaixin110 says:

    ChineseDistributedPictureUploadstoragesolutionsIEbrowserunderthesamemulti-pagepictureshow…

  44. Here are 3 reasons to make fewer web request calls and why it benefits your website: Browser Connection

  45. 洪九 says:

    相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加

  46. 梦想 says:

    相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加

  47. linFen says:

    作者:Fenng|可以转载,转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址:http://www.dbanotes.net/web/web_image_server.html

  48. 小昊 says:

    1.减少HTTP请求(合并脚本样式表)

    2.将样式表放在顶部

    3.将脚本放在底部

    4.使用外部js和css

    5.精简js

    6.移除重复脚本

    7.压缩组件(CSS.JS)

    8.避免CSS表…

Skip to main content