HTTP compression in IE
Author
Discussion

futie

Original Poster:

655 posts

303 months

Friday 17th September 2004
quotequote all
Ok, i've spent far too long surfing for this one .. wondered if anyone here had the answer.

A friend is experiencing crap browsing performance with IE. Turns out that some ad- or mal- ware has screwed up his IE settings so that it now no longer spits out the:

Accept-Encoding: gzip, deflate

in the headers that it should. Consequently some websites are taking absolutely ages to download and display.

I can find out how to affect/change the browser User-Agent string in the registry, but no sign of any compression settings which may have been reset.

Any ideas? Muchos gracias!

arcturus

1,497 posts

290 months

Friday 17th September 2004
quotequote all
Install Firefox?.....

futie

Original Poster:

655 posts

303 months

Friday 17th September 2004
quotequote all
arcturus said:
Install Firefox?.....
I knew there'd be somebody ...

arcturus

1,497 posts

290 months

Friday 17th September 2004
quotequote all
Couldn't resist...sorry!!

Just amazed I got there first.

Mr E

22,960 posts

286 months

Friday 17th September 2004
quotequote all
Install Fir........

.....damn. Beaten.

TheExcession

11,669 posts

277 months

Monday 20th September 2004
quotequote all
Hi,

I've done a bit of work on this in the past.

Check out Tools->Internet Options -> Advanced, scroll down and make sure use HTTP 1.1 is enabled.

In the registry its at:
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings]
"EnableHttp1_1"=dword:00000001


There are various other settings located in the registry for this too.

If he's using an HTTP proxy server that changes a few things. Also if he's using dialup modem connection, IE stores these settings differently for each dialup connection.

IF the above doesn't work let me know what the connection setup is, IE version and OS and I should be able to start offering a few other things to look at.

best
Ex

>> Edited by TheExcession on Monday 20th September 13:35

futie

Original Poster:

655 posts

303 months

Monday 20th September 2004
quotequote all
Adrian,

Thanks for the reply! The setting you mention is set to 1 in the registry unfortunately. So must be something else.

It's a WinXP machine, using IE 6 (not sure of the exact version) and he's connecting using a LAN, no proxy, then ADSL router out to the internet.

If you have any more things to look for, or try, that would be really helpful!

Cheers,
Marc

TheExcession

11,669 posts

277 months

Wednesday 22nd September 2004
quotequote all
hmmm, well I'm a bit short on ideas now - that registry entry should have sorted it.

Take you did a reboot after applying the change.

What are you using to determine that the header is missing? Ethereal? - If so perhaps you could mail me a trace of him accessing the home page of PistonHeads.

best
Ex

futie

Original Poster:

655 posts

303 months

Wednesday 22nd September 2004
quotequote all
I didn't have to reboot - the value was already set to 1.

Yes, I used Ethereal (what a fantastic program that is, btw). But I don't have the trace now - I have to swap from wireless to wired, and connect to the router that he's connected to

What you'll see is a full set of headers from IE; the user-agent header had been modified a little, but I found the setting in the registry to revert that back to normal. And the accept-encoding header looks like this:
Ethereal said:

Accept-Encoding:             


So there are a load of spaces where the "gzip,deflate" options should be ...

Any use?

Cheers,
Marc

ps. One thing I must admit that I didn't do was un-set and re-set the setting in IE options. I'll do that now and get back to you.

pps. I also checked the version of urlmon.dll - it's exactly the same as on my machine and is identical. Thought the accept-encoding header might be hardcoded in there.

TheExcession

11,669 posts

277 months

Wednesday 22nd September 2004
quotequote all
futie said:
I didn't have to reboot - the value was already set to 1.

Yes, I used Ethereal (what a fantastic program that is, btw). But I don't have the trace now - I have to swap from wireless to wired, and connect to the router that he's connected to

What you'll see is a full set of headers from IE; the user-agent header had been modified a little, but I found the setting in the registry to revert that back to normal. And the accept-encoding header looks like this:


Ethereal said:

Accept-Encoding:             



So there are a load of spaces where the "gzip,deflate" options should be ...

Any use?

Cheers,
Marc

ps. One thing I must admit that I didn't do was un-set and re-set the setting in IE options. I'll do that now and get back to you.

pps. I also checked the version of urlmon.dll - it's exactly the same as on my machine and is identical. Thought the accept-encoding header might be hardcoded in there.




Hi Marc - yup Ethereal rocks - you should try writing your own disectors sometime - we have and use it to decode our satellite protocols where they appear on Ethernet in our systems - it's utterly brilliant.

Now back to the problem - I just did a bit of testing and interestingly if I disable HTTP1.1 in my browser settings then the Accept-Encoding HTTP header completly disappears from the request.

So the fact you are getting a blank string is well strange - init

Trying to look into this a bit more I did a search through my system32 folder for any files containing the text 'deflate'.

Give the following files a quick check:
dxdiagn.dll
javart.dll
URLMON.DLL
vsinit.dll
vsutil.dll
WININET.DLL
&
vsmon.exe - a zone alarm file
&
a load of MFC files that I don't think are important.


From what you have described this certainly looks like some cheeky monkey has blanked out this string in a dll somewhere - this would certainly be appropriate for some pay per bit service where you wanted your customers to run an uncompressed stream.

I'd offer the the file size and date of these dll's but there seems no point as the files size won't be changed (if spaces have been written in) and likely the file has been 'touched' after the modification so the date appears the same.

The list above are certain candidates for you to replace with known good versions from a working machine.

Rememeber to reboot after any mods to URLMON and WININET, these are held in the dll cache. Also do the file search again after the reboot to ensure the updated files haven't been compromised again and you can see the 'deflate' string in the file.

Great stuff! Let me know how you get on.

best
Ex

>> Edited by TheExcession on Wednesday 22 September 21:51

futie

Original Poster:

655 posts

303 months

Wednesday 20th October 2004
quotequote all
It's me again

Well we've looked at all the files you mentioned - of all the ones which exist on the client PC (the zonealarm files don't exist) they are all identical! Even wininet.dll contains the string: gzip, deflate!

So i'm still stumped.

Ethereal said:
GET /Default.aspx?ec=lex&id=3e720435810f47db97362b9819e47dc8&sp=0 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-gb
Accept-Encoding:              
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: www.sitememory.com
Connection: Keep-Alive
Cookie: smuid=**removed**

Any more bright ideas? The machine certainly has had some ad/mal-ware on it in the past, but is clean now. Also Norton internet security is running, but we've tried turning that off. I've also re-registered a few of the IE dlls.

squirrelz

1,186 posts

298 months

Wednesday 20th October 2004
quotequote all
Have a look in HKLM\SOFTWARE\Classes\PROTOCOLS\Filter

for keys deflate, gzip, lzdhtml

You may need to copy them back from another machine.

>> Edited by squirrelz on Wednesday 20th October 18:54

TheExcession

11,669 posts

277 months

Monday 25th October 2004
quotequote all
squirrelz said:
Have a look in HKLMSOFTWAREClassesPROTOCOLSFilter

for keys deflate, gzip, lzdhtml

You may need to copy them back from another machine.

>> Edited by squirrelz on Wednesday 20th October 18:54


Goof thinking Batman!

Futie - Let me know if you come across anything.

best
Ex

futie

Original Poster:

655 posts

303 months

Monday 25th October 2004
quotequote all
Hi guys - more bad news - the settings on the client are exactly the same as on another machine which is working fine.

squirrelz

1,186 posts

298 months

Monday 25th October 2004
quotequote all
Right, we're gonna need 2 pounds of semtex, some detonators.....

Last resort I can think of is using regmon, to track access to the registry at the point of IE starting up, and/or at the point of going to the site using http compression (actually, any site would do wouldn't it).

It's going to be very time consuming, but I can't think of any other way of doing it.

Something has got to be different between the 2 machines, and my bet is on the registry.

I've heard of this problem a few times, and I don't remember anyone actually sorting it, they either rebuilt the machine or lived with it.

futie

Original Poster:

655 posts

303 months

Monday 25th October 2004
quotequote all
squirrelz said:
I've heard of this problem a few times, and I don't remember anyone actually sorting it, they either rebuilt the machine or lived with it.
Yeah - I think a rebuild is the only other alternative, but our thoughts are: if we've found this problem, maybe someone else has it too, and so if we can sort it, then it's not just better for us, but better for anyone who has poor performance accessing our site.

Ok, will get regmon and do some tracing - wish me luck!

Oh, and ps - thanks v. much for the help!

TheExcession

11,669 posts

277 months

Monday 25th October 2004
quotequote all
This certainly has me intrigued...

Do keep us informed futie and best of luck with regmon.

best
Ex