開啓配置HTTP壓縮(GZip)javascript
在IIS7中配置Gzip壓縮相比IIS6來講實在容易了許多,並且默認狀況下就是啓用GZip壓縮的。若是沒有,則能夠再功能視圖下找到「壓縮」項,進入以後就會看到「靜態內容壓縮」和「動態內容壓縮」兩個選項,勾上便可。java
配置啓用壓縮的文件類型及其餘選項瀏覽器
當開啓 GZip壓縮以後,IIS並非對全部內容都啓用了壓縮,而是有選擇的進行壓縮。遺憾的是,咱們沒法直接在IIS7管理器中配置這些壓縮選項。咱們首先需 要在C:/Windows/System32/inetsrv/config文件夾下找到applicationhost.config文件,打開以後找 到以下一節內容:app
<httpCompression directory="%SystemDrive%/inetpub/temp/IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%/system32/inetsrv/gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression>
咱們能夠看到,IIS其實是根據MIME類型來決定是否啓用HTTP壓縮的,以及壓縮比之類的選項。能夠看出,圖片默認狀況下是不被壓縮的,這是由於圖片的壓縮比過低了。性能
咱們注意到,對於Javascript來講,上面對不一樣的mime類型配置了不一樣的壓縮方式。 Javascript有三種常見的Mime類型,text/javascript,application/x- javascript,application/javascript。這三種類型都是合法的,在現代瀏覽器中也不存在什麼差異。可是因爲IIS7中Js文件的mime類型默認被設置爲application/x-javascript,也就是說對於js文件,使用的是動態內容壓縮而不是靜態內容壓縮,所以會致使js文件有時通過壓縮的,有時卻沒有壓縮。翻譯
因爲js文件一般穩定以後不會再被修改了,所以建議改爲靜態壓縮——即把 dynamicTypes這一節中的application/x-javascript挪到靜態壓縮節中。這樣保證每次腳本都是被壓縮過返回的。圖片
靜態壓縮及動態壓縮的區別ip
IIS7中的HTTP壓縮分爲「靜態內容壓縮」和「動態內容壓縮」,其實這兩個名字第一次接觸很費解。什麼是動態內容什麼又是靜態內容?實際上,準 確的翻譯應該是「靜態壓縮」和「動態壓縮」。這兩個詞反應了IIS的壓縮行爲。對於配置在 staticTypes節中的mime類型,將會啓用靜態壓縮,也就是說,當文件第一次被請求的時候,IIS會將其壓縮,而後放入臨時文件夾中,下次再有 人請求此文件時直接從臨時文件夾中取出壓縮後的版本而不用從新執行壓縮的過程。配置在dynamicTypes一節中的mime類型的http請求都將啓 用動態壓縮,即每一次請求,主機都會對請求的內容——多是存放在文件系統中的靜態文件,也多是ISAPI返回的內容——進行壓縮,而不會對其進行緩 存。這個壓縮比率因主機性能不一樣而會有所調整,因此咱們在請求js文件的時候纔會發現js文件有時壓縮有時不壓縮的狀況。io
顯而易見,靜態壓縮會佔用必定的存儲空間,可是速度快,而動態壓縮不佔用存儲空間,可是佔用CPU時間,並且壓縮比不恆定。而對於通過ISAPI的請求,則不能使用靜態壓縮方式。例如對於WCF返回的內容。class