Share via


HTTP Performance

The information published in this post is now out-of-date and one or more links are invalid.

—IEBlog Editor, 21 August 2012

Before I joined the Internet Explorer team, I worked on the
Microsoft Office Online website.  Handling massive amounts of traffic, we
faced some performance challenges that forced me to dig into the guts of HTTP
performance.  The output of that effort was twofold:
Microsoft Fiddler, and documentation of some best practices for web
performance optimization.  The latter has been summarized into a new MSDN
article which discusses Internet Explorer’s support for caching and compression,
and how to use Fiddler to explore site efficiency.  You can read the new article
here:
https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/ie_introfiddler2.asp?frame=true

I hope the web developers in the audience will find these tips informative.

 -Eric Lawrence

Comments

  • Anonymous
    January 01, 2003
    Why does it just apply to IE when HTTP is a global protocol for ALL browsers?

  • Anonymous
    January 01, 2003
    It doesn't just apply to IE, but all HTTP traffic.

    So why don't you go away?

  • Anonymous
    January 01, 2003
    Fiddler looks interesting. I currently use the LiveHTTPHeaders extension for Firefox, but I'm trying to switch back over to a 50/50 IE/Firefox usage pattern. (LiveHTTPHeaders IS browser-specific, doesn't work for IE at all.)

  • Anonymous
    January 01, 2003
    I'm assuming they mean it'll only work in IE since it's the only browser they have listed in the "Applies to" section.

    Maybe they can say "All browsers that support the HTTP protocol"? From here, it looks like they're making HTTP proprietary...

  • Anonymous
    January 01, 2003
    "I'm assuming they mean it'll only work in IE"

    You know what they say happens when you "assume".

  • Anonymous
    January 01, 2003
    Next to OutputDebugString, Fiddler has got to be one of my favourite debugging tools...

  • Anonymous
    January 01, 2003
    Most of the section titled "Conditional Requests and the WinInet Cache" is IE only. The rest applies to all current browsers.

    Fiddler is a great tool. I hope you keep working on it. :)

  • Anonymous
    January 01, 2003
    This looks like pretty helpful information. Thanks Microsoft!

  • Anonymous
    January 01, 2003
    I've always been curious as to why there's two "separate" Office web sites -- office.microsoft.com, and the other one (the orange one). Why weren't they combined into one?

  • Anonymous
    January 01, 2003
    Really interresting. But, when are you going to talk about CSS support? I know this question is asked continuously but this is important for a lot of web developper. I think a screenshot with the acid2 test displayed perfectly will has his "little" effect.

  • Anonymous
    January 01, 2003

  • sigh *

    http://validator.w3.org/check?uri=http://www.fiddlertool.com/fiddler/

    I think the IE team would be well served to take a break for a week or so, and try and update all their associated websites to rudimentary standards(no doctype? c'mon). At least make a feeble attempt to walk the walk. Who knows, you may even grok the frustrations of the blog commentators.

  • Anonymous
    January 01, 2003
    <<I think the IE team would be well served to take a break for a week or so, and try and update all their associated websites>>

    Let's take a poll-- Who thinks this is a good use of my time, vs. working on IE7 and improving Fiddler?

    The site seems to render just fine in the browsers I use (IE, Firefox, Opera, Netscape, and AOLExplorer), so I'm not sure standards-for-standards sake is a good allocation of my time.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    claps for Eric

    I'd prefer a balance of Fiddler and IE7.

    BTW, I think this is the first time in a long time that the IE team asked for our opinions.

  • Anonymous
    January 01, 2003
    Nice to see an article about this, however, as I noticed on my own blog a week or 2 ago, using compression and caching at the same time is still not possible under IE.

    According to the Channel 9, you are aware of this. Is this something that will get fixed ?

    See http://jpdeckers.blogspot.com/2005/05/ie-still-broken-with-gzipped-content.html

  • Anonymous
    January 01, 2003
    Thanks for the great program, Eric. Very handy indeed.

  • Anonymous
    January 01, 2003
    > The site seems to render just fine in the browsers I use (IE, Firefox, Opera, Netscape, and AOLExplorer), so I'm not sure standards-for-standards sake is a good allocation of my time.

    Here's a more real-world problem:
    Try using the site with the browser's default colours set to white text on black.

  • Anonymous
    January 01, 2003
    Fiddler is an awesome tool and I thought I knew my way around it.... wrong.
    A second great article on...

  • Anonymous
    January 01, 2003
    <<Who thinks this is a good use of my time, vs. working on IE7 and improving Fiddler?>>

    /me raises hand
    "Know your customers" and all that. I would even say that it falls under the umbrella of "working on IE7".

  • Anonymous
    January 01, 2003
    I personally always find the posts of Eric Lawrence the most interesting on this blog mainly because they go into detail on various aspects of HTTP.

    It's a bit unfair someone criticising the article that is linked to because it doesn't mention Firefox in the products it applies to. I'd assume that the fact is that MS documentation refers to MS products and can't claim to represent anyone else, for someone to claim that this was to say they were trying to make HTTP proprietary is rediculous.

    I can't and therefore don't use IE 6 due to owning a Mac and a Linux PC, there's a lot of things we can fault IE on but all this bashing for bashings sake just makes users of other systems look like idiots. Please be civil and appreciate a decent article when it becomes available.

    As I can't try fiddler myself (not on Windows like I mentioned earlier) I'll stick with the Firefox Live HTTP Headers extension which is good enough for my needs but the fiddler tool does look impressive (although could do with a better name) and has features that Live HTTP headers does not offer.

    Anyway, if you keep up with quality tools like this then IE will be a lot more developer friendly and I think for that we'll be all happy.

  • Anonymous
    January 01, 2003
    There's a 'Run As' command in Windows XP which I find very handy, it means I can right click on an executable and run it as administrator, useful for installing applications without having to log out.

    However, I don't seem to be able to run IE as Administrator, the context menu entry is different for this than it is normal apps.

    Now why would I like to run IE as administrator? Simple, to run Windows Update.

    Also I'd like as a special security measure for it to be obvious when an IE Window is running as administrator so I don't mistakenly visit an untrusted site with escalated permissions, is this possible at the moment?

  • Anonymous
    January 01, 2003
    John:

    The IE icon on the desktop is a shell extension, so it gets it's own context menu.

    However, if you navigate to the actual iexplore.exe executable (in {Program filesInternet Explorer) you can get the "Run as..." option on the context menu.

    If you want it on the desktop, just create your own shortcut to iexplore.exe there.

  • Anonymous
    January 01, 2003
    Two thoughts...
    Could you make a .url file for windowsupdate.microsoft.com? If so, do you get a "Run As..." command on documents?

    I recall a KB article that showed how to use Content Restriction to lock down IE to a particular site. I wonder if you could do that to lock the Administrator account down to Windows Update (or now, Microsoft Update)

  • Anonymous
    January 01, 2003
    Ooh Eric.. Controversial statement there!!

    I raise an objection.
    If we go by your logic then why the heck use standards?
    Oh well, why not all of us renege ourselves to the proprietary-browser-extensions days??

    Agreed you have other important tools to develop, but do not brush the standards issue aside and really it would be well worth it if you made your own pages standards compliant.

    Atleast by doing that, IE team may realise what the standards really are!!

    How can I trust my pages in your browser, when your own website shows up with 17 deviations on the standards page??

    sigh I will have to ask users to use other browsers than IE on my site. :-(

    Please do not mistake me for yet another FF/Opera/Open Source evangelist, I love IE and that is why it pains me a lot to see my favourite browser going to the trash bin.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Excellent reply Eric. I'm sick and tired of people with nothing better to do than validate their sites 24/7 telling me I should use standards when all browsers render my work properly =)

  • Anonymous
    January 01, 2003
    OK, here's my take on standards.

    You can either spend your life testing every page you write on every new browser that comes out...

    Or you can write pages that follow the standards.

    Then, if a bug in the browser causes the page to fail, you make a judgment call - either fix the bug, or recommend another browser.

    My policy is:

    1. CODE TO STANDARDS
    This gives every browser a fighting chance.

    2. WORK AROUND BUGS IN MAJOR BROWSERS
    If a browser has > 5% market share, code workarounds for any bugs that break standard code.

    3. IGNORE BUGS IN MINOR BROWSERS
    If you're gonna use an off-market browser, it had better be good if you want my support.

    To the last poster... really? EVERY browser? What about IE 7?

  • Anonymous
    January 01, 2003
    You can right click the Windows Update shortcut in the Start menu, and use Run As. Or you can run wupdmgr.exe from an administrator command prompt.

    However I've found that all updates fail when I use Run As (since XP SP2). They only succeed when I'm actually logged in as an admin.

  • Anonymous
    January 01, 2003
    <<using compression and caching at the same time is still not possible under IE. >>

    The bug with ETAGs is interesting and I'll ensure that we're looking at it. But we shouldn't equate ETAGs and caching-- Office Online uses both caching and compression for JS files, despite this ETAG issue.

  • Anonymous
    January 01, 2003
    Nice tool, Eric. I've used two other tools for this type of HTTP debugging, as well:

    Charles Proxy
    http://www.xk72.com/charles/

    HTTP Analyzer
    http://www.ieinspector.com/httpanalyzer/index.html

    Of course, yours is the only FREE tool.

  • Anonymous
    January 01, 2003
    <<I've used two other tools for this type of HTTP debugging>>

    Hehe... The truth is that had I known about the alternatives, I'd never have started Fiddler in the first place. Once I finally came across some such tools, I already had the foundation of Fiddler built and I couldn't bear to abandon it... So I added in the tampering support, scripting support, etc. :-)

  • Anonymous
    January 01, 2003
    Eric, thank you for this article, I will certainly make good use of the information presented, and thank you for taking the time to write it.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    I think you should have several versions of the page for Fiddler. One that is as it is now. Another that is fully standards compliant.
    This way you have something of your own to see how well IE does or does not handle improper pages as well one to see how it does on standards compliant pages.

    If you aren't involved in the rendering aspects of IE 7, then it is mostly academic to you in either case.

    There are two types of dogfood for IE. The person using IE as a browser, in which IE is the dog food and the person designing a web page, in which the web page is the dog food.

    If you don't clean up your pages, you're feeding yourself rotten kibble.

    Fiddler appears to be an excellent tool. I find that excellent tools evolve when the developer is the in-need user. If the developer is not the in-need user, development usually stops at "good enough".

    If you wish IE to be excellent rather than good enough, you should find a way to make yourself the in-need user, both as a web viewing person and as a web page developer.

    (This advice really applies to any sort of design activity.)

    IMarv

  • Anonymous
    January 01, 2003
    Two clarifications:

    1> IE supports GZIP and Deflate today. These are not IE7 features.

    2> I have nothing at all to do with CSS/HTML rendering. I own aspects of the HTTP stack and assorted security features, and both of these keep me plenty busy.

    Thanks for the feedback.

  • Anonymous
    January 01, 2003
    Completely Offtopic... (Take it with a pinch of salt!)

    Q: Why is IE7 taking such a long time?
    Ans: Coz the number "7" isn't rendering correctly yet.
    :)

  • Anonymous
    January 01, 2003
    Sorry for offtopic, but you've said that
    tabs will be in IE6 with MSN Toolbar.

    It is released today, but only for 2K/XP.
    And what about 98/ME?!

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    And how about HTTP Pipelining to increase performance? It's the great advantage I see in Firefox today (security it's not better than IE and the other features I have with some free add-ons like Avant or Maxthon).

  • Anonymous
    January 01, 2003
    Most webservers other than Apache and IIS reject all pipelined requests. Some servers reply with "HTTP/1.1 OK" but don't support HTTP 1.1. This really breaks compatibility (images, embedded objects, scripts, stylesheets not loading).
    Some server detection would be good, for example send one pipelined request, if the server doesn't accept it, then fallback to normal connection without pipelining.
    We have to wait next 10 years, maybe people will upgrade their servers.

  • Anonymous
    January 01, 2003
    AA,

    95% of all web servers are either Apache or IIS.
    IE should support pipelining and automatically enable and tune it if it could detect the server type would be a plus.
    It shouldn't be enabled by default but it would be really good to have a way to activate it.

  • Anonymous
    January 01, 2003
    This may or may not be relevant to this topic, so I apologise if isn't.

    But, as more and more people turn to broadband, it seems that more developers are forgetting about the many who still use dial-up to access the web. When creating web sites, it can be so easy to forget how a page will load for a 56k modem user if you, the developer, have a 1/2/4/8MB connection.

    For those who do try and cater for slower connections, it can be difficult to estimate how a page would load if you're on broadband and don't have access to a dial-up account - or costly (as well as inconvenient) if you do (BB + dial-up charges).

    Would it be possible to implement a method of adjusting the stream IE accepts data at, as an advanced feature? For example, a simple radio list to select weather to accept data as it comes (as usual) or to let it flow in at a 56k level so that developers can get a better view as to how a modem user would see their pages progress.

    While on the subject; I'm not sure how the W3C HTTP spec states how new headers can be added, but how about users being able to select their Internet connection speed from a radio list, and have that info passed as a HTTP_SPEED header, which some content providers could use to target their audience better (such as offer larger video / sound clips to faster connections, smaller ones to 56'ers).

    Just a suggestion or two, keep up the great work.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Hi, I’m Patrick Mann, a security tester on the IE team. It’s a big week for me and a few other folks...

  • Anonymous
    March 01, 2008
    Internet Explorer 7 is supposed to support gzip and deflate encoding. Right? Despite the support advertised via the Accept-Encoding header, I noticed it does only support gzip encoding, but not deflate....

  • Anonymous
    July 23, 2008
    PingBack from http://antonionewssite.iwebsource.com/bloodtestnumbersfordiabetes.html

  • Anonymous
    October 11, 2008
    PingBack from http://www.subbu.org/blog/2008/03/ie7-deflate-or-not

  • Anonymous
    May 29, 2009
    PingBack from http://paidsurveyshub.info/story.php?title=ieblog-http-performance