2017-03-29 1 views
-2

Mon application Web envoie des fichiers JSON au client. Ces fichiers peuvent être relativement gros. Puis-je les compresser côté serveur et recevoir de manière non compressée côté client de manière transparente?Est-il possible de gzip fichier sur le serveur et ungzip dans le navigateur de manière transparente?

Par exemple, si j'écris

$.getJSON("ajax/test.json", function(data) { 
... 
}); 

je peux avoir juste ajax/test.json et mis au format gzip-encodage du contenu à gzip?

+1

Oui. En règle générale, il s'agit d'un élément de configuration pour votre serveur Web, vous n'avez rien à faire par programme ou modifier vos fichiers. – pvg

+0

Donc, si j'ai juste stati JSON sur le serveur (par exemple, AWS), il est très probablement compressé? –

+1

Peut-être, dépend de la façon dont vous configurez votre serveur. Il est trivial de vérifier en regardant l'onglet réseau dans les outils de développement du navigateur. – pvg

Répondre

2

Vous n'avez spécifié aucune information sur votre configuration côté serveur.

Si vous générez le fichier json à la volée, vous devez vérifier si la requête envoyée par le navigateur contient l'en-tête Accept-Encoding: gzip. Si oui, ajoutez l'en-tête Content-Encoding: gzip à la réponse et envoyez les données compressées gzip. Si les fichiers json sont statiques, vous devez configurer le type mime application/json comme compressible dans votre configuration de serveur web, ou mieux encore, le précomprimer, stocker à la fois file.json et file.json.gz sur votre serveur web, puis configurer la réécriture conditionnelle et En-têtes, donc le fichier compressé est servi uniquement aux clients qui supporte la compression. Rechercher/Demander à ServerFault comment faire cela sur votre serveur web.