Gzip là gì? Cách thêm Gzip tăng tốc website hiệu quả
Thịnh Văn Hạnh 19/11/2022 1542 Lượt xem Chia sẻ bài viết
Có nhiều thủ thuật để xử lý dữ liệu và tối ưu hóa trang web của bạn. Làm cho việc cài đặt và quản lý dễ dàng và hiệu quả hơn nhiều. Hôm nay BKNS sẽ giới thiệu với các bạn bài viết Gzip là gì? Và Cách cài đặt phương thức nén file này vào website của bạn.
Tóm Tắt Bài Viết
Gzip là gì?
Gzip Compression là phương pháp nén giúp giảm dung lượng dữ liệu trên máy chủ khi gửi xuống máy khách, giúp tiết kiệm băng thông và tăng tốc độ tải trang web. Cách nén Gzip cũng tương tự như việc sử dụng Winrar để nén file trên máy tính.
Gzip là gì?
Khi dữ liệu này được gửi đến client, máy khách (thường là trình duyệt), nó sẽ tự động được trích xuất từ đó và hiển thị trong giao diện bình thường. Gzip có thể nén các tệp tĩnh như HTML, CSS, Javascript hay tài liệu XML, JSON.
Xem thêm: HTML5 là gì? Phát triển và thiết kế web vượt trội với HTML5
Cơ chế hoạt động của Gzip là gì?
Gzip dựa trên sự trao đổi và truyền dữ liệu nén giữa máy chủ và trình duyệt. Quá trình này bao gồm hai bước:
Bước 1: Trình duyệt gửi một tiêu đề đến máy chủ cho biết rằng nó chấp nhận tệp nén. Định dạng của tiêu đề này là: “Accept-Encoding:gzip, deflate” (trong đó gzip và deflate là hai cách để nén dữ liệu).
Bước 2: Server gửi phản hồi đồng ý và gửi file nén dữ liệu về trình duyệt với tín hiệu: “Content-Encoding:gzip”
Lưu ý. “Accept-Encoding:gzip, deflate” chỉ là yêu cầu của trình duyệt, không bắt buộc, vì vậy máy chủ có thể chấp nhận hoặc không. Nếu máy chủ không gửi thông điệp “Content-Encoding:gzip ” trong tiêu đề phản hồi sau khi nhận được yêu cầu, điều đó có nghĩa là tệp không được nén bằng Gzip. Khi đó, trình duyệt phải tải tập tin với dung lượng ban đầu.
Các cách bật nén Gzip là gì?
Có 5 cách để bật nén Gzip, đó là:
Cách 1: Sửa file .htaccess
Bạn có thể bật gzip bằng mod_gzip hoặc mod_deflate. Nhưng mod_deflate được ưa chuộng hơn vì thuật toán chuyển đổi hiệu quả và mô-đun tương thích hoàn hảo với phiên bản mới của Apache.
Lưu ý rằng tệp .htaccess rất quan trọng vì nó có thể kiểm soát nhiều chức năng của trang web. Do đó, bạn phải rất cẩn thận trước khi thực hiện bất kỳ thay đổi nào đối với tệp này. Chỉ cần một lỗi nhỏ là website sẽ dính lỗi ngay.
Có 5 cách để bật nén Gzip
Nén Gzip có thể được bật bằng cách thêm dòng sau vào tệp .htaccess:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/opentype
# For Older Browsers Which Can’t Handle Compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Nếu máy chủ không thể sử dụng mod_deflate thì bạn có thể dùng mod_gzip. Cấu trúc của các dòng code như sau:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_include handler ^cgi-script$
</ifModule>
Khi bạn chỉnh sửa xong, hãy lưu tệp .htaccess và tải lại trang web. Tại thời điểm này, tính năng nén Gzip được kích hoạt.
Cách 2: Plug-ins CMS WordPress
Nếu bạn sử dụng WordPress hosting hoặc Managed WordPress hosting, bạn có thể kích hoạt Gzip rất dễ dàng bằng cách cài đặt các plugin có sẵn như W3 Total Cache, WP Super Cache, GZip Ninja Speed Compression, v.v. Gzip được tự động kích hoạt với chúng. tiện ích mở rộng trong một vài bước đơn giản.
Đối với Joomla, bạn có thể Gzip trang web của mình bằng cách vào Hệ thống -> Cài đặt chung -> Máy chủ -> Nén trang Gzip và chọn Có.
Kích hoạt Gzip rất dễ dàng bằng cách cài đặt các plugin có sẵn
Cách 3: Bật nén qua hosting cPanel
Nếu bạn có license cPanel, bạn có thể bật tính năng nén Gzip trên tất cả các trang web của mình trong mục Tối ưu hóa Trang web (Optimize Website).
Sau khi mở phần này, chọn Compress All Content rồi bấm Update Settings. Những gì bạn vừa làm về cơ bản là khai báo các dòng mã trong tệp cấu hình .htaccess của bạn để kích hoạt Gzip trên các hosting.
Xem thêm: Firebase là gì? Cách hoạt động, ưu và nhược điểm firebase
Cách 4: Bật nén Gzip trên máy chủ web NGINX
Để kích hoạt Gzip trên máy chủ web NGINX, bạn cần thêm đoạn code này vào file config:
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Disable for IE < 6 because there are some known problems
gzip_disable “MSIE [1-6].(?!.*SV1)”;
# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
Cách 5: Bật nén Gzip trên máy chủ web Litespeed
Trong Litespeed, bạn có thể kích hoạt tính năng nén bằng cài đặt trong phần Cấu hình. Tại đây, người dùng chỉ cần chọn “Enable Compression” là có thể kích hoạt Gzip.
Lời kết
Tóm lại, nén Gzip là một trong những cách tốt nhất để cải thiện hiệu suất trang web. Do đó, nếu một trang web không được tối ưu hóa về tốc độ tải, giải pháp nén này nên được kích hoạt ngay lập tức để cải thiện trải nghiệm người dùng được tốt hơn.