2009-07-30 10 views
1

Ich entwickle ein Browser-Plugin und Server-Komponentensystem, das Inhalte mit einem benutzerdefinierten Codierungstyp streamt. Nun möchte ich auf der Server-Seite erkennen können, ob der Client die spezielle Kodierung verarbeiten kann und diese mit der gewohnten Funktionsweise von HTTP konsistent halten möchte, also vom Browser-Plugin möchte ich ein neues hinzufügen Codierung in der Accept-Encoding-Anforderungsheader. d.h .:Wie kann der Accept-Encoding-Header im IE mit Url-Monikern oder anderen Methoden geändert werden?

Accept-Encoding: gzip, deflate, myencoding

ich versucht habe IHttpNegotiate Implementierung und als zusätzliche Header in BeginningTransaction Einstellung, aber es scheint entweder zu ignorieren oder es wird später überschrieben.

Antwort

1

Bitte versuchen Sie es nicht. Jeder Ansatz, mit dem Sie den Accept-Encoding-Header ändern könnten (z. B. Asynchronous Pluggable Protocol Wrapping), wäre zwangsläufig ein Hack und funktioniert nicht zuverlässig, da WinINET, Proxies usw. Annahmen über Accept-Encoding und Content-Encoding treffen Header und die Einführung eines neuen Schemas wird nicht zuverlässig sein.

Zum Beispiel habe ich gehört, dass einer der populären Proxies unbekannte Kodierungen als GZIP behandelt und den Content-Encoding-Header als Antwort neu schreibt; offensichtlich wird das dein Schema brechen.

+0

Interessant. Was ist der Sinn einer HTTP-Spezifikation, wenn so viele Dinge kaputtgehen? Wie auch immer, dies ist für den Einsatz in einer bestimmten Unternehmensumgebung gedacht, daher wäre das Proxy-Problem wirklich kein Problem. Wir haben dieses Schema in Firefox in dieser Umgebung bereits gründlich getestet. Aber welche Annahmen macht Wininet über den Accept-Encoding-Header? – Gerald

+0

Wie auch immer, danke für die Antwort. Dies berücksichtigend, und die offensichtliche Hackerei, die damit verbunden ist, dass dies im IE funktioniert, habe ich beschlossen, einfach einen separaten Anfrage-Header zu verwenden und mit meinem ursprünglichen Plan fortzufahren, einen benutzerdefinierten MIME-Typ anstelle eines Content-Encodings zu verwenden. – Gerald