บีบอัดข้อมูลเว็บไซต์ให้เล็กลงด้วย Apache Mode Deflate

wave
มานพ กองอุ่น 15 มี.ค. 2018 15:38:04 5,497

สำหรับบทเรียนรู้นี้เป็นการใช้งาน Apache Modules ในการบีบอัดเว็บไซต์ ให้เล็กลงก่อนส่งให้ Client (อาจไม่เกี่ยวกับ Yii2 นะครับ แต่ก็ใช้กับ Yii2 ได้ โหลดเว็บไวขึ้นเยอะครับ) โดย apache module ที่จะต้องเปิดใช้งานคือ mode_deflate โดยสามารถเปิดการใช้งานได้ที่ httpd.conf วิธีการ โดยทำการเพิ่มไฟล์ .htaccess ใน root ของเว็บไซต์ ถ้ามีแล้วก็ให้เพิ่มคำสั่งเข้าไป ดังนี้

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

จะเห็นว่าที่ browser เมื่อมีการ inspect ดูจะมีการ response header content-encoding : gzip ลักษณะนี้

Cache-Control:no-store, no-cache, must-revalidate
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Thu, 15 Mar 2018 08:32:28 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
Pragma:no-cache
Server:Apache/2.4.29 (cPanel) OpenSSL/1.0.2n mod_bwlimited/1.4
Transfer-Encoding:chunked
Vary:Accept-Encoding,User-Agent

สามารถทดสอบได้ว่ามีการบีบอัดไปเท่าไรที่เว็บไซต์ http://www.gidnetwork.com/tools/gzip-test.php

พบว่ามีการบีบอัดไปกว่า 84% จาก 75k เหลือ 11k โอววววว


Web page compressed?	Yes
Compression type?	gzip
Size, Markup (bytes)	75,644
Size, Compressed (bytes)	11,742
Compression %	84.5

ลองทำกันได้เลยครับ


ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com

เขียนบทเรียนรู้ของคุณ

รายละเอียด
  • ดู 5,497
  • รักเลย 0
  • หมวดหมู่ Yii Framework 2 (Yii2)
  • เขียนเมื่อ
  • แก้ไขเมื่อ
  • Tags apache mode_deflate gzip compress
ข้อมูลผู้เขียน
มานพ กองอุ่น

มานพ กองอุ่น

เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009

เนื้อหาที่เกี่ยวข้อง