2009-06-30 5 views
1

In Firefox können wir die Standardwerte für HTTP-Header anpassen, zum Beispiel den Header "Accept-Encoding" in einer HTTP-Anfrage ändern (im Browser "about: config" eingeben) und suchen nach Präferenz "network.http.accept-encoding", können Sie diesen Wert doppelklicken und anpassen)Anpassen von Standardwerten für HTTP-Anforderungsheader in Internet Explorer

Kann dies in Internet Explorer möglich sein?

Kürzlich hatten wir ein Problem, dass unsere Webanwendung nicht in IE6 geladen wird.
Weitere Graben das Problem ergab, dass "Accept-Encoding" Header in allen HTTP-Anfragen von IE6 gesendet fehlt. Also reagiert der Server mit 404 "Not Found" -Fehler für alle Javascript-Datei-Anfragen, da wir aufgrund von Platzbeschränkungen nur gezippte Versionen von Javascript-Dateien pflegen.

Bitte lassen Sie mich wissen, wenn es eine Option im IE gibt, um Werte für "Accept-Encoding" Header anzugeben, so dass es als Teil jeder Anfrage gesendet wird?

Antwort

2

@tialaramex: Es ist wahr, dass Microsoft den Dekomprimierungscode in IE7 massiv überarbeitet hat, aber soweit ich weiß, wurden alle Probleme mit der Dekomprimierung in IE6 in Patches behoben.

@Naga: IE wird den Accept-Encoding-Header senden, wenn Sie "Use HTTP/1.1" in Extras/Internetoptionen/Erweitert aktiviert haben, und nicht, wenn Sie dies nicht tun.

Allerdings wird Ihr Design in der realen Welt brechen, und es hat nichts mit IE6 zu tun. Wenn Sie das Buch "Even Faster Websites" von Steve Souders lesen, werden Sie feststellen, dass eine Vielzahl von Unternehmensproxys und lokalen Sicherheitsprodukten die Accept-Encoding-Kopfzeile entfernen, wenn sie gefunden wird. Daher können Sie erwarten, dass Ihre Website beschädigt wird, wenn Sie nur komprimierten Inhalt zurückgeben möchten.

(In Antwort auf Ihre eigentliche Frage, nein, gibt es keine Konfigurationseinstellung, die Sie einen beliebigen Header senden würde. Reliable benutzerdefinierte Header im IE ist wirklich ziemlich schwierig, und in der Regel umfasst das Schreiben eines Asynchronous Pluggable Protocol Wrapper eine Leistungseinbuße.)

+0

In IE 6.0 ist "Use HTTP/1.1" bereits aktiviert. Ich denke auch an die Zeilen, dass einige Sicherheitsprodukt den Header "Accept-Encoding" strippen kann, [Corporate Proxy Strippen der Header ist in meinem Fall ausgeschlossen, da es keinen Proxy zwischen Server und Client gibt und beide sind in der identisches Netzwerk], konnte jedoch nicht identifizieren, welches auf dem Desktop installierte Sicherheitsprodukt dieses Problem verursacht, und konnte deshalb keine Ressourcen im Internet finden. Vielen Dank für die gute Quelle "Even Faster Websites" auf diesen Artikel. –

+0

Hallo Eric, Dieses Problem ist nur mit IE6.0 und nicht mit IE7.0 und Firefox gesehen. Wenn eine Sicherheitssoftware den Header "Accept-Encoding" entfernt, sollte sie diese Header für alle Anfragen aller Browser entfernen. Recht? Bitte teilen Sie Ihre Gedanken dazu .. –

+0

Haben Sie überprüft, dass der Server eine HTTP/1.1-Anfrage vom IE6-Client erhält? – EricLaw

1

Eine Google-Suche schlägt Sie nicht komprimierten Daten an IE6 senden wollen, weil it can cause corruption and other mysterious problems. (kein Zweifel, können Sie Ihre eigene Suche tun und Dutzende mehr wie diese finden)

Microsoft zu haben scheinen „fixed“ dieses Problem mehr als einmal (z. B. ist es in IE6 SP1, und wieder in IE6 SP2_ aufgeführt, aber Benutzer weiterhin das Problem in IE6 SP2 zu melden, was darauf hindeutet, sie haben keine Ahnung, was eigentlich falsch war und höchstwahrscheinlich nur den gesamten zugehörigen Code und Ersetzen Sie es in IE7 Großhandel

Also, wenn die Web-App in IE6 arbeiten muss (ich schade, Sie), dann werden Sie wahrscheinlich den Preis für das Halten unkomprimierter Versionen aller Dateien bezahlen wollen. Alternativ können Sie Ihrer Web-App einen Filter hinzufügen, der gzip'd-Dateien für IE6-Benutzer entpackt. Dies würde IE6-Benutzer CPU-hungriger und langsamer zu Service machen, aber die Speicherung von Speicherplatz beibehalten.