Quali browser gestiscono `Content-Encoding: gzip` e quali di essi hanno requisiti speciali sulla qualità della codifica?


44

Sto creando un server HTTP 1.0, 1.1 "fatto a mano". Di recente ho integrato zip lib, quindi ora posso eseguire lo streaming di dati gziped codificati dentro e fuori. Mi chiedo quali browser principali (quelli vivi - IE6-IE10, Chrome, FF, ecc.) Inviano Accept-Encoding: deflate, gzip, ...e così possono gestirli Content-Encoding: gzipoggi? Chi di loro ha aspettative di qualità? Chi di loro può inviare al mio server dati di posta gziped codificati e dati multypart / modulo?


1
Non dovresti comunque fare affidamento sull'intestazione Accept-Encoding? O stai solo chiedendo per curiosità?
Flimzy,

@Flimzy Se stai memorizzando file che sono stati codificati in anticipo (cosa che potresti fare per ridurre il carico della CPU, per ridurre l'utilizzo dello spazio su disco, per aumentare il livello di compressione o perché stai servendo file da un server completamente statico) , quindi non hai davvero il lusso di aderire all'intestazione Accept-Encoding. Se puoi obbedire all'intestazione, ovviamente dovresti, ma dato il supporto praticamente universale di gzip al giorno d'oggi, va bene costruire il tuo sito Web per richiedere il supporto di gzip.
Hayden Schiff,

1
@haydenschiff ovviamente puoi ancora onorare l'intestazione accetta. Se stai memorizzando i dati compressi con gzip, sei già pronto a decomprimerlo per servirlo se l'intestazione accetta.
Flimzy

Risposte:


49

Fondamentalmente ogni browser al giorno d'oggi supporta deflate / gzip. Questa pagina elenca molti browser e numeri di versione. Ecco un riepilogo e alcuni browser più recenti:

  • Netscape 6+ (Netscape 4-5 lo fa, ma con alcuni bug).
  • Internet Explorer 5.5+ (luglio 2000) e IE 4 se impostato su HTTP / 1.1.
  • Opera 5+ (giugno 2000)
  • Lynx 2.6+ (qualche tempo prima del 1999)
  • Firefox 0.9.5+ (ottobre 2001)
  • Chrome da sempre
  • Safari da sempre (per quanto ne so)

Come puoi vedere: per quasi 15 anni, c'è pieno supporto e nessuno usa un browser di più di 15 anni.


1
+1 Ero un po 'confuso, dato che questo sembra un problema inesistente. @ user1049847 forse devi espandere la tua domanda sopra?
Su '19

3
E per aggiungere a questo, nessun browser invierà una richiesta compressa gzip ma quasi tutti accettano una risposta compressa gzip. Vedi " Perché il browser non può inviare richieste gzip? " Su StackOverflow.
Marco Miltenburg,

2
@Su 'ha ragione: qualsiasi browser che supporti gzip invierà l'intestazione Accept-Encoding, quindi non è necessario preoccuparsi esattamente di quali browser lo supportano. Invia gzip quando ti dicono che sono in grado di riceverlo.
DisgruntledGoat,

12
La domanda è rilevante. Se stai offrendo file statici da Amazon S3, MS Azure e altri (come molti altri) non sarai in grado di rispondere dinamicamente all'intestazione accetta-codifica. Anche la compressione al volo mette un carico aggiuntivo sulla CPU.
QFDev,

1
@QFDev se stai servendo file statici, puoi creare una versione che è gzip e una che non lo è e controllare per accettare la codifica / gzip e modificare i file statici offerti di conseguenza.
Jordan Reiter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.