Gzip kodlama JSON ile uyumlu mudur?

4 Cevap php

Benim AJAX çağrıları ile oluyor bazı garabeti daraltmak için çalışıyorum. Benim PHP betikleri başında bu var:

ob_start("ob_gzhandler");

HTML ile harika çalışıyor. Ama uygulama / json veri ile yapıyor herhangi bir sorun var mı? Herhangi bir tarayıcı herkes farkında sorunları?

4 Cevap

Ben bu yüzden ... Ben daha önce gzip'li JSON olarak depolanan statik dosyaları kullanılan sanmıyorum, ve AJAX ile iyi çalıştı.

edit: Ben php script kontrol ve yaptım özel tek şey bu başlıkları dahil oldu:

Content-Encoding: gzip
Content-Type: text/plain

Eğer doğru hatırlıyorum JSON belirtmek istiyorum şey Content-Type değiştirmeye çalıştı ne zaman, müşteri sorun vardı.

IE6 bazı sürümleri gibi bazı eski tarayıcılar, özellikle js içeriği sıkıştırılmış içerikle berbat.

Sadece sunucu uygun içerik kodlama başlığını gönderir kontrol, yani

Content-Encoding: gzip

Ayrıca sıkıştırılmış içerikle göndermeden önce doğru kabul kodlama başlık için tarayıcı tarafından gönderilen başlıklarını kontrol etmelisiniz ... yani,

Accept-Encoding: gzip,deflate

Tarayıcı Accept-Encoding istek başlığında gzip belirtir ne zaman sıkıştırılmış içerikle dışarı verebilir. Bu durumda, JSON ve HTML ve herhangi bir sorun olursa neden olacak arasında hiçbir fark yoktur.

Bunun yerine PHP sıkıştırma etkinleştirme çeşitli uyumsuz tarayıcılar için kontrol ve sadece bunu kabul tarayıcılar için sıkıştırılmış veri göndermek ve doğru bir şekilde işleyebilir ki, ben (mod_deflate kullanarak) Apache sıkıştırmayı sağlayacak.

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html