IEInternals

A look at Internet Explorer from the inside out. @EricLaw left Microsoft in 2012, but was named an IE MVP in '13 & an IE userAgent (http://useragents.ie) in '14

Browse by Tags

Tagged Content List
  • Blog Post: “Everybody Lies”

    Today we present EricLaw’s 2nd law of Software: “ If your software platform is sufficiently popular, and it offers a GetVersion API, that API probably lies. ” Recently, a user of Telerik’s automated web testing product ( Test Studio ) filed a bug noting that they’d recently...
  • Blog Post: Understanding Web Proxy Configuration

    Over the last decade, I’ve come to learn a lot about web proxies, having chosen to implement my web debugger as a proxy. In today’s post, I’ll provide an overview of proxy-related information, including information on changes in Internet Explorer 11 / Windows 8.1. The “System...
  • Blog Post: Braindump: DNS

    Note: The “brain dump” series is akin to what the support.microsoft.com team calls “Fast Publish” articles—namely, things that are published quickly, without the usual level of polish, triple-checking, etc. I expect that these posts will contain errors, but I also expect...
  • Blog Post: Proxy-Authentication breaks many applications

    When I first joined Office, I worked on the team responsible for delivering Help, Templates, and ClipArt into the client applications. As we were testing our work in various simulated customer environments, we found a big problem. At least one big customer (tens of thousands of licenses) had a network...
  • Blog Post: Networking Improvements in IE10 and Windows 8

    Internet Explorer 10’s networking code builds upon the performance improvements in IE9 ( caching , overall networking ) to help ensure that IE10 loads pages as quickly as possible. In IE10, we identified a few key areas for improvement based on customer feedback, code inspection, and telemetry...
  • Blog Post: The Hazards of Browser Quirks, continued

    My First Law of Browser Quirks was introduced a while ago : If there’s a way for a site to take dependency on a browser quirk, and break if that quirk is removed, it will happen . The Second Law of Browser Quirks is: If there’s a way for a site to combine a set of browser quirks to yield...
  • Blog Post: HTTP Methods and Redirect Status Codes

    This crossed my Twitter stream earlier today: I’m not sure why we need a public service announcement to notify folks that Internet Explorer is behaving properly, but I guess there’s no harm in that. However, based on the lack of information provided, and the implication that this...
  • Blog Post: Integrated Windows Authentication

    Inside Internet Explorer’s Tools > Internet Options > Advanced dialog, there’s an option named Enable Integrated Windows Authentication : This preference is stored using a REG_DWORD named EnableNegotiate inside HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings...
  • Blog Post: Understanding Once-Per-Session Cache Validation

    Last year, I wrote about the IE9 improvements in heuristic expiration , which apply when a server fails to specify how long a cached resource should be treated as fresh. Heuristic Expiration works by calculating an implicit freshness lifetime from the Last-Modified timestamp on the cached resource and...
  • Blog Post: A Primer on Temporary Internet Files

    On Windows Vista and above, Internet Explorer’s Temporary Internet Files are maintained in two isolated WinINET cache containers. One cache is used for sites loaded in Protected Mode (Internet Zone and Restricted Zone) and the other cache is used for sites loaded outside of Protected Mode (Trusted...
  • Blog Post: File Upload and Download Limits

    Over the last few years, we’ve had a few questions about WinINET’s limits for file upload and download. I’ve summarized those limits in the following table: Upload (total size) Download (per file) Internet Explorer 6 2gb 2gb...
  • Blog Post: IE9 Compatibility–HttpOpenRequest and lplpszAcceptTypes

    The WinINET API allows the caller to specify the accepted MIME types for a given HTTP request by passing a null-terminated array of null-terminated strings using the lplpszAcceptTypes parameter. When calling the HttpOpenRequest API, applications must take care to either pass NULL, or a pointer to a properly...
  • Blog Post: Understanding Conditional Requests and Refresh

    Today's post is a collection of technical tidbits about conditional HTTP requests and the behavior of IE's Refresh button. It's probably of limited interest to most readers, but if you need to deeply understand either of these topics, hopefully you will find it helpful! Conditional Requests Web...
  • Blog Post: Use Sensible Long-Lived Cache headers

    As some of you might expect, I watch all of my network traffic when I browse the web—you never know when you’ll see something interesting. This afternoon, for example, my curiosity was piqued when I noted that as I browsed around the Zune website, my browser issued conditional HTTP requests...
  • Blog Post: Getting the Server's Certificate Chain from WinINET

    Over the last few years, a number of folks have lamented that there's no good way to get the server's complete certificate chain from a WinINET HTTP response. That has changed with the release of the new WinINET shipping in Windows 7 / IE8. INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT is a new flag you...
Page 1 of 1 (15 items)