Welche Browser verarbeiten `Content-Encoding: gzip` und welche von ihnen haben spezielle Anforderungen an die Codierungsqualität?

44

Ich erstelle einen "handgemachten" HTTP 1.0, 1.1 Server. Ich habe kürzlich die zip lib integriert, damit ich jetzt verschlüsselte gziped-Daten ein- und ausstrahlen kann. Ich frage mich, welche gängigen Browser (lebendige - IE6-IE10, Chrome, FF usw.) heute senden Accept-Encoding: deflate, gzip, ...und damit umgehen können Content-Encoding: gzip? Welche von ihnen senden irgendwelche Qualitätserwartungen? Welche von ihnen können verschlüsselte Postanfragen und mehrteilige / Formulardaten an meinen Server senden?

user1049847
quelle
1
Sollten Sie sich nicht trotzdem auf den Accept-Encoding-Header verlassen? Oder fragst du nur aus Neugier?
Flimzy
@Flimzy Wenn Sie Dateien speichern, die im Voraus codiert wurden (was Sie möglicherweise tun, um die CPU-Auslastung zu verringern, den Speicherplatz zu verringern, die Komprimierungsstufe zu erhöhen oder um Dateien von einem vollständig statischen Server bereitzustellen). Dann haben Sie nicht wirklich den Luxus, sich an den Accept-Encoding-Header zu halten. Wenn Sie den Header befolgen können, sollten Sie das natürlich tun, aber angesichts der praktisch universellen Unterstützung von gzip ist es in Ordnung, Ihre Website so zu erstellen, dass Sie Unterstützung für gzip benötigt.
Hayden Schiff
1
@haydenschiff natürlich kannst du den accept header trotzdem honorieren. Wenn Sie komprimierte Daten speichern, sind Sie bereits bereit, diese zu entpacken, um sie zu liefern, wenn der Accept-Header dies vorschreibt.
Flimzy

Antworten:

49

Grundsätzlich unterstützt heutzutage jeder Browser deflate / gzip. Diese Seite listet viele Browser und Versionsnummern auf. Hier ist eine Zusammenfassung sowie einige neuere Browser:

  • Netscape 6+ (Netscape 4-5 funktioniert, aber mit einigen Fehlern).
  • Internet Explorer 5.5+ (Juli 2000) und IE 4, wenn HTTP / 1.1 eingestellt ist.
  • Opera 5+ (Juni 2000)
  • Lynx 2.6+ (einige Zeit vor 1999)
  • Firefox 0.9.5+ (Oktober 2001)
  • Chrome seit Ewigkeiten
  • Safari seit Ewigkeiten (soweit ich das beurteilen kann)

Wie Sie sehen: Seit fast 15 Jahren gibt es volle Unterstützung, und niemand verwendet einen Browser, der älter als 15 Jahre ist.

oezi
quelle
1
+1 Ich war etwas verwirrt, da dies ein nicht existierendes Problem zu sein scheint. @ user1049847 Vielleicht müssen Sie Ihre Frage oben erweitern?
Su‘
3
Hinzu kommt, dass kein Browser eine gzip-komprimierte Anfrage sendet, aber fast alle eine gzip-komprimierte Antwort akzeptieren. Siehe " Warum kann der Browser keine gzip-Anfrage senden? " Auf StackOverflow.
Marco Miltenburg
2
@Su 'ist richtig - jeder Browser, der gzip unterstützt , sendet den Accept-Encoding-Header, sodass Sie sich nicht genau darum kümmern müssen, welche Browser dies unterstützen. Senden Sie gzip, wenn sie Ihnen mitteilen, dass sie es empfangen können.
DisgruntledGoat
12
Die Frage ist relevant. Wenn Sie statische Dateien aus Amazon S3, MS Azure und anderen (wie viele andere) bereitstellen, können Sie nicht dynamisch auf den Accept-Encoding-Header reagieren. Auch das Komprimieren im laufenden Betrieb belastet die CPU zusätzlich.
QFDev
1
@QFDev Wenn Sie statische Dateien bereitstellen, können Sie eine komprimierte und eine nicht komprimierte Version erstellen und auf accept-encoding / gzip prüfen und die bereitgestellten statischen Dateien entsprechend ändern.
JordanReiter