Domanda

Ho un server web incorporato che ha un totale di 2 Meg di spazio su di esso. Normalmente gzip file per il beneficio dei client, ma questo ci risparmierebbe spazio sul server. Ho letto che puoi semplicemente gzip il file js e salvarlo sul server. L'ho provato su IIS e non ho avuto fortuna. Cosa devo fare esattamente in ogni fase del processo per far funzionare tutto questo?

Questo è quello che immagino sarà:

  1. gzip foo.js
  2. cambia link in html per puntare a foo.js.gz invece che solo .js
  3. Aggiungi qualche tipo di intestazione alla risposta?

Grazie per l'aiuto.

-fREW

MODIFICA : il mio server web non può fare nulla al volo. Non è Apache o IIS; è un binario su un processore ZiLog. So che puoi comprimere i flussi; Ho appena sentito che puoi anche comprimere i file una volta e lasciarli compressi.

È stato utile?

Soluzione

Come altri hanno già detto, mod_deflate lo fa per te, ma immagino che tu debba farlo manualmente poiché è un ambiente incorporato.

Prima di tutto dovresti lasciare il nome del file foo.js dopo averlo decompresso.

Non dovresti cambiare nulla nei tuoi file html. Poiché il file è ancora foo.js

Nell'intestazione di risposta di (the gzipped) foo.js si invia l'intestazione

Content-Encoding: gzip

Questo dovrebbe fare il trucco. Il client richiede foo.js e riceve Content-Encoding: gzip seguito dal file gzipped, che decomprime automaticamente prima dell'analisi.

Naturalmente questo presuppone che tu sia sicuro che il client comprenda la codifica gzip, se non sei sicuro, dovresti inviare i dati gzipped solo quando l'intestazione della richiesta contiene

Accept-Encoding: gzip

Altri suggerimenti

L'uso della compressione gzip su un server web di solito significa comprimere l'output da esso per conservare la larghezza di banda, non proprio quello che hai in mente.

Guarda questa descrizione o Questo esempio

Se stai usando Apache, usi mod_deflate , e si comprime al volo.

Penso che ti stai confondendo pensando che se decomprimi qualcosa deve essere un file. Invece, pensa a come un file è solo un flusso di dati e quel flusso di dati può essere compresso qui, trasmesso e non compresso lì senza che il client debba nemmeno pensarci.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top