我在NGinx服務器上有一個web應用程序。我在conf文件中設置了gzip on
,現在我正在嘗試查看它是否有效。 YSlow說這不是,但是在6個測試網站中,有5個是這樣說的。我怎樣才能得到一個明確的答案,爲什麼有結果的差異?如何判斷我的服務器是否提供GZip內容?
回答
它看起來像一個可能的答案是,勿庸置疑,curl
:
$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553
在第二種情況下,客戶告訴它支持內容編碼的服務器,你可以看到,響應確實短,壓縮。
請參看答覆標題。在FireFox中,您可以使用Firebug進行檢查。
Content-Encoding gzip
如果服務器支持gzip內容,則應顯示此內容。
只有當你的客戶端發送了「Accept-Encoding:gzip,放氣「 – 2012-07-10 14:11:26
硬刷新以查看原始文件的編碼,因爲該文件的狀態爲304,似乎緩存的版本已解壓縮! (在我的情況下,我看到一個ETag頭,而不是內容編碼) – ptim 2014-09-23 08:06:08
你可以快速地使用像Web服務:http://www.whatsmyip.org/http-compression-test/
谷歌Chrome瀏覽器的「審覈」的開發者工具的工具就派上用場了爲好。
更新
鉻改變它報告的方式有關(見原來的答覆如果有興趣)。您可以使用開發人員工具(F12)進行分析。轉到網絡選項卡,選擇要檢查的文件,然後查看右側的標題選項卡。如果你被壓縮,你會在Content-Encoding中看到。
在這個例子中,slider.jpg的確被壓縮了。
與此相比,這個非常頁面,你是在和看一個png文件,你會看到沒有這樣的稱號。
只是要清楚,這不是因爲一個是JPG,一個是PNG。這是因爲一個是gzip,另一個不是。
以前的答案
在Chrome中,如果你拉了開發者工具和進入網絡選項卡,然後它會顯示如下如果沒有壓縮:
以下如果有壓縮:
換句話說,相同的數字,頂部和底部,意味着沒有壓縮。
檢查響應頭可能會更好。此方法不會說是否開始使用gzip壓縮或其他壓縮算法。 – Samuel 2014-04-28 20:30:47
在網絡選項卡上的Chrome開發者工具中,點擊請求的資源名稱/鏈接,您可以像這樣查看響應頭,並查看'gzip'獲取內容編碼密鑰 ![屏幕截圖] [1] [1]:http://i.stack.imgur.com/Bpb5W.png(http://content.screencast.com/users/Ryan.Regalado/folders/Jing/media/401debfc-d82e-41de- 8212-1865ffa2a502/00000352.png) – d48 2014-08-04 18:39:04
最近的Chrome版本(版本44.0.2403.130米)似乎沒有顯示大小/內容細節 - 我的意思是gzip細節 - http://i.imgur.com/MTz7DCM.png 。有誰知道原因? – 2015-08-12 08:57:38
另一個有用的工具:http://gzipwtf.com
這是唯一的工具,我已經看到了將解析您的網頁,發現所有直接引用的資源(CSS,JS文件等),並告訴你,如果他們每個人都用gzip壓縮,而不是僅僅告訴你索引頁是否被壓縮。
還提供了其它有用的統計數據(時間下載資源,速度等)
無在線工具上面可以測試我的網址這是一個XML文件,然而,這一個沒有工作的權利:
'''壓縮大小:-1''' ??這個工具沒有工作,現在仍然無法工作。 – AlasdairC 2015-10-02 22:32:50
我寫的基礎上,zoul的回答這個腳本:
#!/bin/bash
URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"
if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi
例如:
$ ./script.sh https://example.com/
- 1. 如何判斷一個網站是否提供AJAX服務
- 2. 如何判斷我是否在網絡服務器下運行?
- 3. 如何使fuseki提供gzip內容?
- 4. Vignette CMS是否提供gzip的HTML,CSS和JavaScript內容?
- 5. 如何判斷遠程服務器是否爲多線程?
- 6. 如何判斷XHR是否使用readyState發送到服務器?
- 7. 如何判斷服務器是否被鎖定?
- 8. 如何判斷sidekiq是否連接到redis服務器?
- 9. 如何判斷kdb服務器是否忙?
- 10. 可靠地測試服務器是否gzip內容
- 11. 如何判斷我的容器是否在Kubernetes集羣內運行?
- 12. 維基服務器gzip的內容
- 13. 如何判斷Android設備是否能夠提供位置?
- 14. 如何判斷一個頁面是否被提供給iframe?
- 15. 如何判斷asp.net 4.0是否安裝在我的服務器上?
- 16. 如何判斷我的Ruby服務器腳本是否被重載?
- 17. 如何判斷MemberInfo是否爲內部
- 18. 如何判斷「內聯」是否工作?
- 19. 如何判斷是否沒有要從HttpURLConnection讀取的內容
- 20. 如何判斷GWT HTML的內容是否水平溢出?
- 21. 判斷文件是否是FTP服務器上的目錄
- 22. 使用PHP,我該如何判斷請求是否源於託管服務器?
- 23. 如何判斷文件是否被gzip壓縮?
- 24. 如何判斷Heroku是否發送gzip響應?
- 25. 我如何判斷ajax是否工作?
- 26. 如何判斷UIScrollView內容是否溢出
- 27. 如何判斷兩個網頁內容是否相似?
- 28. 如何判斷我的PayPal證書是否是SHA-256? - 貝寶服務升級
- 29. 如果文件被服務器gzip壓縮,就是ajax內容
- 30. 是否有一個nodejs完整的web服務器包,提供動態內容?
這是事實,但gzip的可配置壓縮某些文件類型,並排除他人。因此,請確保使用此測試卷曲的文件屬於將被壓縮的類型。 – 2013-10-24 15:26:29
我建議在'curl'上也使用'-L'標誌來跟蹤所有重定向,例如從非www到'www.',否則size_download的結果可能是錯誤的 – vladkras 2016-11-21 10:12:43
@TlerlerBiscoe你是對的 – Faly 2017-10-12 09:14:35