We were observing that our pages were loading very slow in IE compared to FF and we thought that IE is inherently slow parsing the page, that was a wrong assumption. Using fiddler with IE shows that the server somehow was making too many SSL handshakes with server compared to when we plugged in Fiddler with FF or Safari. This was traced down to an Apache configuration.
Apache comes with a default mod_ssl conf
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
What this tells is that for all IE browsers dont use Keep-alive and downgrade HTTP response to 1.0. Apache was consuming significant time doing this when compared to same request in FF. Well all this was required for really old browsers.
Changing the conf as shown below solved the issue and now we get good initial load performance in IE browsers
SetEnvIf User-Agent ".*MSIE [1-4].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [5-9].*" \
ssl-unclean-shutdown
Apache comes with a default mod_ssl conf
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
What this tells is that for all IE browsers dont use Keep-alive and downgrade HTTP response to 1.0. Apache was consuming significant time doing this when compared to same request in FF. Well all this was required for really old browsers.
Changing the conf as shown below solved the issue and now we get good initial load performance in IE browsers
SetEnvIf User-Agent ".*MSIE [1-4].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [5-9].*" \
ssl-unclean-shutdown
".*MSIE [1-4].*" should be ".*MSIE [1-4]\..*" now that IE 10 is coming up...
ReplyDelete