㈠ 如何開啟gzip壓縮
gzip是HTML壓縮演算法的一種,HTTP壓縮是在Web伺服器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮工作原理是:
Web伺服器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;
如果瀏覽器支持HTTP壓縮,Web伺服器檢查請求文件的後綴名;
如果請求文件是HTML、CSS等靜態文件,Web伺服器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web伺服器向瀏覽器返回未壓縮的請求文件,並在壓縮緩沖目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
如果請求文件是ASPX等動態文件,Web伺服器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
怎麼做gzip壓縮呢?大致有:在Contol Pannel開啟gzip、開啟http伺服器gzip、利用php本身的gzip。
IE6和火狐都支持客戶端gzip,在網頁傳輸之前,先使用gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示。
IIS6已經內建了gzip壓縮的支持。在IIS6上做gzip壓縮的方法是:
如果你需要壓縮靜態文件,可以先在硬碟上新建一個目錄,並給它「IUSR_機器名」這個用戶設置寫許可權。如果壓縮動態文件就可以不用這樣的,因為它的頁面是每次都動態生成的(頁面動態生成),壓縮完就放棄。然後在IIS管理器中,「網站」上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入「服務」標簽,選上啟用動態內容壓縮,靜態內容壓縮。給gzip的臨時目錄空間不要太大了200MB左右就夠了。
然後選中網站下面那個伺服器擴展,新建一個伺服器擴展。可以用任何你想用的名字,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然後啟用這個擴展。
這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮范圍內。我們只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個相同名字的段,
分別是
<IIsCompressionScheme Location =「/LM/W3SVC/Filters/Compression/deflate」
<IIsCompressionScheme Location =「/LM/W3SVC/Filters/Compression/gzip」
<IIsCompressionSchemes Location =「/LM/W3SVC/Filters/Compression/Parameters」
前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這里。HcDynamicCompressionLevel改成9,9是性價比最高的一個。
至此,怎麼做gzip壓縮的過程我們就都實現了,需要注意的是:網頁啟用了gzip壓縮後網站打開速度通常可能不會有太明顯的感覺(相對於瀏覽者),可以用一些特定的來檢查你的網頁是否壓縮過了,以及壓縮比和加快的速度。
㈡ 常見的http請求頭和響應頭
探索HTTP交互的基石:請求頭與響應頭詳解
在Web通信中,HTTP請求頭和響應頭就像無形的信使,傳遞著客戶端與伺服器之間的交流信息。讓我們一起深入理解這些關鍵的元數據,它們在每次數據傳輸中起著至關重要的作用。
同樣重要的是伺服器向客戶端發送的響應頭,它們傳遞了資源的詳細信息和控制策略。
了解這些HTTP請求頭和響應頭的細微差別,有助於我們優化網路請求,提高用戶體驗,以及更好地管理Web應用程序與伺服器之間的交互。
㈢ 緗戠珯緗戦〉鎬庝箞鍘嬬緝緗戠珯緗戦〉鎬庝箞鍘嬬緝鏂囦歡
緗戦〉鎬庝箞鍘嬬緝錛熼珮鎵嬫寚鐐逛竴涓嬨
涓.鎬葷粨鏈鏂囨葷粨浜嗗備綍涓篒IS鎵樼$殑緗戠珯鍚鐢℅zip鍘嬬緝錛屼粠鑰屽噺灝戠綉欏電綉緇滀紶杈撶殑澶у皬錛屾彁楂樼敤鎴風殑欏甸潰鏄劇ず閫熷害銆
浜屻備粙緇
鏈鏂囩煡璇嗙偣鏀墮泦鑷緗戠粶錛屼富瑕佹潵婧愪簬涓鏂囩淮鍩恆傚湪浣跨敤YSlow媯嫻嬬綉絝欎腑鍚鐢ㄤ簡鍝浜涗紭鍖栨椂錛孏zip鏄涓涓鍏抽敭銆傚惎鍔℅ip鍘嬬緝灝嗙珛鍗沖噺灝戦〉闈㈢殑緗戠粶浼犺緭澶у皬銆
涓夈侶TTP鍘嬬緝姒傝堪
HTTP鍘嬬緝鏄涓縐嶅湪Web鏈嶅姟鍣ㄥ拰嫻忚堝櫒涔嬮棿浼犺緭鍘嬬緝鏂囨湰鍐呭圭殑鏂規硶銆侶TTP浣跨敤gzip絳夐氱敤鍘嬬緝綆楁硶鍘嬬緝HTML銆丣avaScript鎴朇SS鏂囦歡銆
鍘嬬緝鏈澶х殑濂藉勬槸鍑忓皯浜嗙綉緇滀紶杈撶殑鏁版嵁閲忥紝浠庤屾彁楂樹簡瀹㈡埛絝嫻忚堝櫒鐨勮塊棶閫熷害銆
褰撶劧涔熶細涓鐐圭偣澧炲姞鏈嶅姟鍣ㄧ殑璐熸媴銆侴zip鏄涓縐嶅父瑙佺殑HTTP鍘嬬緝綆楁硶銆
鍥涖侶TTP鍘嬬緝鐨勫伐浣滃師鐞
澶勭悊HTTP鍘嬬緝鐨刉eb鏈嶅姟鍣ㄧ殑宸ヤ綔鍘熺悊濡備笅:
1.緗
鏈嶅姟鍣ㄦ敹鍒版祻瑙堝櫒鐨凥TTP璇鋒眰鍚庯紝媯鏌ユ祻瑙堝櫒鏄鍚︽敮鎸丠TTP鍘嬬緝錛
鍦ㄧ敤鎴鋒祻瑙堝櫒鍙戦佺殑璇鋒眰鐨凥TTP澶翠腑錛岀敤鈥淎ccept-Encoding:gzip錛宒eflate闈欐佹枃浠朵笌鍔ㄦ佹枃浠跺悗緙鍚鍔ㄨ佹眰閮介渶瑕佸湪MetaBase.xml涓璁劇疆.
闇瑕佽劇疆闈欐佹枃浠:
HcFileExtensions鍏冩暟鎹搴撳睘鎬
(鐐瑰嚮璺寵漿鍒癕SDN鎻忚堪)闇瑕佽劇疆鍔ㄦ佹枃浠:hcscriptfileextensions鍏冩暟鎹搴撳睘鎬(鐐瑰嚮璺寵漿鍒癕SDN鎻忚堪)
3.濡傛灉璇鋒眰鐨勬枃浠舵槸HTML銆丆SS絳夐潤鎬佹枃浠訛紝涓旀枃浠跺悗緙鍚鐢ㄤ簡鍘嬬緝錛屽垯Web鏈嶅姟鍣ㄦ鏌ヨ鋒眰鏂囦歡鐨勬渶鏂板帇緙╂枃浠舵槸鍚﹀凡緇忓瓨鍦ㄤ簬鍘嬬緝緙撳啿鍖虹洰褰曚腑錛
4.濡傛灉璇鋒眰鏂囦歡鐨勫帇緙╂枃浠朵笉瀛樺湪錛學eb鏈嶅姟鍣ㄥ皢鏈鍘嬬緝鐨勮鋒眰鏂囦歡榪斿洖緇欐祻瑙堝櫒錛屽苟灝嗚鋒眰鏂囦歡鐨勫帇緙╂枃浠跺瓨鍌ㄥ湪鍘嬬緝緙撳啿鐩褰曚腑錛
5.濡傛灉璇鋒眰鏂囦歡鐨勬渶鏂板帇緙╂枃浠跺凡緇忓瓨鍦錛屽垯鐩存帴榪斿洖璇鋒眰鏂囦歡鐨勫帇緙╂枃浠訛紱
6.濡傛灉璇鋒眰鐨勬枃浠舵槸鍔ㄦ佹枃浠(濡侫SPX),騫朵笖鏂囦歡鍚庣紑鍚鐢ㄤ簡鍘嬬緝錛屽垯Web鏈嶅姟鍣ㄤ細鍔ㄦ佸帇緙╁唴瀹瑰苟灝嗗叾榪斿洖緇欐祻瑙堝櫒錛屽苟涓斿帇緙╃殑鍐呭逛笉浼氬瓨鍌ㄥ湪鍘嬬緝緙撳瓨鐩褰曚腑銆
鍔ㄨ瘝錛坴erb鐨勭緝鍐欙級鍦↖IS涓鍚鐢℉TTP鍘嬬緝
IIS榛樿や笉鏀鎸丠TTP鍘嬬緝錛屾墍浠ラ渶瑕佺畝鍗曢厤緗銆
1.鎵撳紑Internet淇℃伅鏈嶅姟(IIS)綆$悊鍣錛屽彸閿鍗曞嚮鈥滅綉絝欌->錛"灞炴р濋夋嫨鈥滄湇鍔♀濄傚湪鈥滃帇緙〩TTP鈥濅腑閫変腑澶嶉夋嗐傚帇緙╁簲鐢ㄧ▼搴忔枃浠垛濆拰鈥滃帇緙╂枃浠
2.鎻愰啋:榪欎釜姝ラゅ湪嫻嬭瘯鍚庡規垜鐨勭數鑴戞病鏈夊獎鍝嶏紝鍙浠ュ拷鐣ャ傚湪Internet淇℃伅鏈嶅姟(IIS)綆$悊鍣ㄤ腑錛屽彸閿鍗曞嚮鈥淲eb鏈嶅姟鎵╁睍鈥"娣誨姞鏂扮殑Web鏈嶅姟鎵╁睍..."錛屽湪鈥滃壋寤烘柊鐨刉eb鏈嶅姟鎵╁睍鈥濇嗕腑杈撳叆鎵╁睍鍚嶇О鈥淗TTP鍘嬬緝
3.鐢ㄦ枃鏈緙栬緫鍣ㄦ墦寮C:.XML(寤鴻鍏堝囦喚)鎵懼埌Location=鐢ㄤ簬璁劇疆鏀炬皵鍘嬬緝銆備互涓婁袱涓鑺傜偣鐩擱偦銆傚苟涓旇劇疆鐨勫睘鎬ф槸鐩稿悓鐨勩
濡傛灉闇瑕佸帇緙╁姩鎬佹枃浠訛紝璇峰皢HcDoDynamicCompression璁劇疆涓衡淭RUE濡傛灉闇瑕佸帇緙╅潤鎬佹枃浠訛紝璇峰皢HcDoStaticCompression鍜孒cDoOnDemandCompression璁劇疆涓衡淭RUE/LM/W3SVC/Filters/鍘嬬緝/deflate
2.HcCompressionDll=
3.HcCreateFlags=
4.HcDoDynamicCompression=TRUE9
15.
HcOnDemandCompLevel=
23./LM/W3SVC/Filters/Compression/gzip
24.HcCompressionDll=
25.HcCreateFlags=TRUE9
37.HcOnDemandCompLevel=
銆俢sharpcode錛屻俢sharpcodepre{font-size:small錛涢滆壊:榛戣壊錛
font-family:consolas錛
鑳屾櫙鑹:#ffffff/*絀虹櫧:pre*/}.csharpcodepre
{margin:0em錛泒.csharpcode銆俽em{color:#008000錛泒.csharpcode銆俴wrd
{
棰滆壊:
#0000ff
}
銆俢sharpcode
銆傛綔鑹囩敤鐑涓瀛愬弽搴斿爢錛坰ubmarinethermalreactor鐨勭緝鍐欙級
{
棰滆壊:
#006080;
}
銆俢sharpcode
銆傚栫戞墜鏈
{color:#0000c0錛泒.csharpcode銆傞勭紪紼媨棰滆壊:
#cc6633}.csharpcode銆俛sp{鑳屾櫙鑹:
#ffff00
}
銆俢sharpcode
銆傝秴鏂囨湰鏍囪拌璦
{
棰滆壊:
#800000;
}
銆俢sharpcode
銆傚睘鎬
{
棰滆壊:
#ff0000}.csharpcode銆俛lt{background-color:#f4f4f4錛涘藉害:100%錛
杈硅窛:0em}.csharpcode銆俵num{color:#606060錛泒
4.緙栬緫鍚庝繚瀛楳etaBase.xml鏂囦歡錛涘傛灉鏃犳硶淇濆瓨璇ユ枃浠訛紝瀹冨彲鑳芥e湪琚獻IS浣跨敤銆傛墦寮鈥滃紑濮嬧->錛"綆$悊宸ュ叿"鏈嶅姟鈥濓紝鍋滄⑩淚IS綆$悊鏈嶅姟鎴栬呭湪闇瑕佽皟鑺傜殑欏甸潰錛屾寜浣忛敭鐩樼殑銆怌trl銆戦敭錛屽悓鏃舵粦鍔ㄩ紶鏍囩殑婊戣疆鍗沖彲璋冭妭銆
1.鎵撳紑嫻忚堝櫒,鎸変笅Ctrl閿,榧犳爣婊戣疆鍚戝墠婊戝姩銆
2.灝嗛〉闈㈠ぇ灝忛噸鏂版仮澶嶅埌100%,榪欐牱緗戦〉灝辨仮澶嶆垚鍔熴
3.鎴栬呯偣鍑?-璁劇疆銆
4.鍦ㄨ劇疆欏甸潰,鎵懼埌緗戦〉緙╂斁,鐐瑰嚮緗戦〉緙╂斁銆
鐢佃剳緗戦〉鎬庝箞緙╁皬鏀懼ぇ錛
1.鎵撳紑鐢佃剳緗戦〉錛屽湪鍙充笅瑙掓壘鍒頒竴涓鏀懼ぇ闀滃浘鏍囷紝鐐瑰嚮鍙充晶鐨刜鍥炬爣
2.鍑虹幇鑿滃崟鍚庯紝鐢ㄩ紶鏍囨嫋鍔ㄦ粦鍔ㄦ潯錛屽悜宸﹀氨鏄緙╁皬緗戦〉錛屽悜鍙蟲嫋鍔錛屽氨鏄鏀懼ぇ緗戦〉銆
鎴戞兂鎶婄綉絝欓〉闈㈢殑瀛椾綋鍙樺皬鎬庝箞璁劇疆錛
1銆佹寜浣廋TRL閿錛岀劧鍚庤漿鍔ㄩ紶鏍囦腑杞錛屽氨浼氬彂鐜扮綉欏墊枃瀛椾細鍙樺ぇ鎴栫緝灝忥紝璋冨埌閫傚綋澶у皬灝卞彲浠ヤ簡銆
2銆佺偣鍑繪祻瑙堝櫒鍙充笅瑙掓樉紺烘瘮渚嬪浘鏍囷紝鎶婃瘮渚嬭皟鏁翠負100%灝卞彲鎮㈠嶆e父銆
3銆佺偣鍑繪爣棰樻爮涓鐨勬煡鐪嬧斺旂緝鏀撅紝閫夋嫨100%灝卞彲浠ヤ簡銆
4銆佸傛灉寰椾笉鍒拌В鍐籌紝嫻忚堝櫒鏈変釜淇澶嶅伐鍏鳳紝鍙浠ヤ慨澶嶆祻瑙堝櫒銆
5銆佸傝繕寰椾笉鍒拌В鍐籌紝鍙浠ラ噸鏂頒笅杞藉畨瑁呮祻瑙堝櫒銆
鏂囦歡澶瑰帇緙╂庝箞鎿嶄綔錛
榧犳爣鍙抽敭鐐瑰嚮瑕佸帇緙╃殑鐢佃剳鏂囨。錛屽脊鍑鴻彍鍗曞悗錛岀偣鍑繪坊鍔犲埌鍘嬬緝鏂囦歡銆
寮瑰嚭欏甸潰鍚庯紝涓哄帇緙╂枃浠跺懡鍚嶅拰閫夋嫨淇濆瓨娓犻亾錛岀偣鍑葷『瀹氥
灝卞畬鎴愬帇緙╂枃浠朵簡銆
㈣ Edge瀏覽器將以HTTP內容編碼方式上線支持Brotli壓縮演算法
微軟Edge團隊高級項目經理Rob Trace宣布,Edge瀏覽器將以HTTP內容編碼方式上線支持Brotli壓縮演算法。版本號高於14986的Windows Insider成員現在已經可以在Edge瀏覽器中充分利用Brotli了,即將於2017年上線的Windows 10 Creators Update也將支持Brotli。
Brotli壓縮演算法由谷歌壓縮團隊的Jyrki Alakuijala和Zoltan Szabadka開發,它在瑞士德語中的意思是小麵包,速度與zlib的Deflate實現一樣快,可以提供比Zopfli高20-26%的壓縮比。去年10月,Google宣布開源該壓縮演算法。
在最新Windows 10預覽版中,微軟Edge支持對HTTPS和HTTP鏈接進行Brotli壓縮。在未來的版本更新中,我們將會繼續深化習慣使HTTPS鏈接只支持Brotli。同Chrome瀏覽器相同,我們將會繼續繼續在HTTP鏈接上解碼Brotli。不過需要注意的是,在當前版本中使用F12開發者工具無法正確現實接收的編碼響應header。這個問題在issues.microsoftedge.com網站上的編號為9771399。