Mam włączoną kompresję gzip w IIS 8.0 podążając za url Enabling Gzip in IIS on Windows 8 Dzwonię zewnętrzne usługi odpoczynku z mojej aplikacji za pośrednictwem wywołania ajax jquery i kodu C#, obecnie moja zewnętrzna usługa sieciowa nie jest skompresowana gzip. Jeśli poproszę mojego partnera serwisowego o skompresowanie odpowiedzi, czy muszę napisać jakąkolwiek logikę dekompresyjną w moim kodzie po stronie jquery, a strona C# lub przeglądarka automatycznie rozpakuje odpowiedź dla mnie?Czy GZIP jest automatycznie dekompresowany przez przeglądarkę?
Odpowiedz
Wszystkie współczesne przeglądarki obsługują kodowane gzip odpowiedzi. W rzeczywistości, jeśli spojrzysz na ich żądania, będą one miały nagłówek, który mówi coś w stylu Accept-Encoding: gzip
, co jest sposobem na przekazanie serwerowi, że mogą obsługiwać spakowane przez gzip odpowiedzi.
Ważną częścią jest to, że serwer może zwrócić zarówno gzip, jak i nieskompresowane odpowiedzi w zależności od istnienia i wartości tego nagłówka. Jeśli klient nie wyśle nagłówka Accept-Encoding
, nie należy go kompresować. Jeśli klient go wyśle, możesz opcjonalnie zakodować odpowiedź za pomocą programu gzip. Nie cała zawartość musi być skompresowana, ponieważ może być już skompresowana i marnujesz cykle procesora. Obrazy JPEG są zwykle dobrym tego przykładem. Najprawdopodobniej IIS podejmuje również inteligentną decyzję i kompresuje tylko to, co jest konieczne, gdy jest to konieczne.
Możesz sprawdzić, czy IIS robi to, co powinien, patrząc na nagłówki odpowiedzi wracające z serwera i szukając nagłówka Content-Encoding: gzip
. To mówi klientowi lub przeglądarce, że treść jest zakodowana przy użyciu kompresji gzip i powinna odpowiednio rozpakować.
Wszystkie żądania oparte na przeglądarce (np. AJAX/jQuery, zwykłe żądania) zostaną automatycznie zdekompresowane bez dodatkowego wysiłku ze strony użytkownika. Przeglądarka jest klientem odpowiedzialnym za określenie, czy może obsłużyć gzip i doda nagłówek Accept-Encoding
, jeśli tak się stanie. Twój kod JavaScript otrzyma nieskompresowaną wersję w twoim module obsługi odpowiedzi.
TL; DR: Włączenie go jest zazwyczaj dobrym pomysłem i nie trzeba wykonywać dodatkowej pracy.
Jeśli kompresja gzip jest włączona na serwerze WWW, czyli nie w logice aplikacji, wówczas przeglądarka rozpakuje się automatycznie.
W rzeczywistości, jeśli przeglądarka nie obsługuje kompresji, serwer WWW wyśle dane nieskompresowane (te informacje znajdują się w nagłówkach HTTP żądania/odpowiedzi wymienianych między przeglądarką a serwerem WWW). Należy pamiętać, że kompresja jest nieefektywna w przypadku plików JPEG i innych już skompresowanych formatów.
- 1. Kiedy nagłówek Authorization jest automatycznie wysyłany przez przeglądarkę?
- 2. Czy jar aplikacji jest pobierany przez przeglądarkę lub przez JVM?
- 3. Czy URL Doctype HTML jest pobierany przez przeglądarkę klienta?
- 4. Jak sprawdzić, czy plik jest skompresowany gzip?
- 5. Czy można załadować skompresowany gzip javascript bez serwera WWW?
- 6. Zobacz/Zaloguj się, która funkcja javascript jest wykonywana przez przeglądarkę
- 7. Dlaczego XInclude nie jest obsługiwana przez żadną przeglądarkę?
- 8. Czy istnieje tabela, która pokazuje metodę HTTP obsługa przez przeglądarkę
- 9. Czy IDisposable.Dispose() jest wywoływana automatycznie?
- 10. Wszystkie znaczniki HTML obsługiwane przez przeglądarkę
- 11. Kompresja pamięci podręcznej i gzip przez htaccess
- 12. zapobiega przeganianiu przez przeglądarkę zewnętrznych połączeń aplikacji
- 13. Określanie systemu DRM obsługiwanego przez przeglądarkę
- 14. Wywołanie Ajax zostaje anulowane przez przeglądarkę
- 15. Zabrudzona pamięć ImageIO nie jest automatycznie czyszczona przez iOS
- 16. Android zamierza otworzyć przeglądarkę preferowaną przez użytkownika
- 17. Jak uniemożliwić buforowanie pliku json przez przeglądarkę
- 18. Automatycznie uruchamiaj przeglądarkę po uruchomieniu przeglądarki internetowej wiosennej i rozruchowej.
- 19. Czy HttpWebResponse .NET automatycznie dekompresuje odpowiedzi GZiped i Deflated automatycznie?
- 20. Co to jest kompresja gZip?
- 21. Automatycznie otworzyć przeglądarkę i zalogować się do witryny?
- 22. Czy automatycznie aktualizowana jest wersja mongoda meteor?
- 23. python cgitb nie działa przez przeglądarkę
- 24. Czy warto gzip plików js?
- 25. Czy przeglądanie dziennika dostępu bez sanityzacji przez przeglądarkę internetową jest niebezpieczne?
- 26. Jak sprawdzić, czy znak nie jest obsługiwany przez przeglądarkę użytkownika w JavaScript?
- 27. Korzystając z jQuery, jak sprawdzić, czy selektor CSS "input [type = text]" jest natywnie obsługiwany przez przeglądarkę?
- 28. Android HttpURLConnection: kompresja gzip
- 29. Ustawić nagłówki http na żądania generowane przez przeglądarkę?
- 30. AFNetworking Włącz GZIP
Dziękuję za odpowiedź. Wspaniała odpowiedź. To mi bardzo pomaga :) – user5075511