#

Tìm hiểu về GZIP? Hướng dẫn bật tính năng nén Gzip cho website

 11/05/2022 - 15:27 Trịnh Duy Thanh

nguoi-dung-su-dung-git

Hai giây – Một khoảng thời gian nghe có vẻ rất ngắn, tuy nhiên khi nói về 2 giây cho website thì nó có nhiều yếu tố quyết định trong khoảng thời gian ngắn này.

Điển hình như tốc độ tải trang, theo khảo sát của Google nếu một trang web có tốc độ tải trang từ 1 đến 3 giây thì tỷ lệ người dùng thoát ứng dụng tăng lên 32%. Đó là một con số đáng báo động khi người dùng sẽ tìm đến những web có độ tải trang nhanh hơn, độ trễ chỉ trong vài giây đã khiến cho website thiệt hại về số lượng khách hàng tiềm năng nặng nề.

Rõ ràng, hiệu suất của trang web là một yếu tố cốt lõi quyết định số lượng khách hàng. Bạn cần ưu tiên giảm thời gian tải trang cho website của mình, trang web có độ tải càng nhanh sẽ càng tốt đồng thời cạnh tranh được với các đối thủ trên thị trường.

Trong bài viết này, chúng tôi sẽ giới thiệu đến các bạn một nền tảng công nghệ web giúp tăng tốc độ hoạt động của internet, cải thiện hiệu suất của website. Đó là một loại nén, cụ thể là GZIP.

Nén là gì?

Nén: Được hiểu theo nghĩa khái quát là làm giảm dung lượng của tệp gốc nhờ vào các thuật toán để loại bỏ các nội dung trùng lặp trong tệp. Trong quá trình nén, các thông tin hoặc dữ liệu trùng lặp sẽ bị xóa đi, nhưng chỉ là tạm thời để giảm kích thước tệp, các dữ liệu bị xóa sẽ được hệ thống ghi lại vị trí. Xong, sau khi giải nén các thông tin đó sẽ được phục hồi, các tệp gốc vẫn được giữ nguyên.

Vậy nén có liên quan gì đến website hay không? Câu trả lời là “Có”.

Thực chất, web là một nhóm các tệp rời rạc có liên quan với nhau được lưu trữ dưới hệ thống web server. Khi bạn muốn truy cập website, bạn nhập URL vào trình duyệt, lúc này trình duyệt sẽ gửi một request sang web server đang lưu trữ các tệp của web mà bạn muốn truy cập, yêu cầu thường là HTTP GET. Khi nhận được request, web server sẽ kiểm tra các dữ liệu phù hợp với request, dữ liệu bao gồm HTML, các tệp CSS, Javascript, các thuật toán và các phương tiện liên kết khác. Sau khi kiểm tra, web server sẽ phản hồi request bằng cách gửi các tệp phù hợp đến trình duyệt ở dạng HTTP, và trình duyệt sẽ hiển thị các tệp dưới dạng một trang web mà bạn muốn truy cập.

so-do-tuong-tac-giua-trinh-duyet-va-may-chu-web
Quá trình hiển thị website

Đối với việc tải một video cũng tốn rất nhiều công sức. Với mỗi lần tải trang, web server phải gửi tất cả các dữ liệu phù hợp đến máy tính của bạn. Tùy theo kích thước khác nhau của từng loại tệp mà thời gian truyền dữ liệu có thể nhanh chậm khác nhau. Số lượng dữ liệu được gửi đi tỉ lệ thuận với tốc độ tải trang của trình duyệt.

Theo http archive, trung bình mỗi lần truyền dữ liệu rơi vào khoảng 2000 kilobyte, nó tương đương với khoảng 100 trang văn bản vật lý. Trong trường hợp, tải các trang theo dạng đa phương tiện kích thước có thể lớn hơn gấp 3, 4 lần dữ liệu thông thường.

Vậy làm cách nào để có thể truyền các dữ liệu có kích thước lớn như vậy mà vẫn đảm bảo được tốc độ tải trang? Giải pháp đó chính là dùng công cụ nén. Các web server sẽ nén các tệp trước khi gửi nó cho các trình duyệt. Chúng ta có thể hiểu đơn giản rằng, việc nén giúp cho việc gửi 100 trang văn bản chỉ còn là 30 trang, như vậy việc gửi đi sẽ trở nên nhẹ nhàng hơn. Điều này giúp cho server và trình duyệt sẽ giảm khối lượng công việc hơn. Khi trình duyệt nhận được các tệp dưới dạng nén, nó nhanh chóng giải nén và hiển thị các tệp dưới dạng website, đồng thời vẫn đảm bảo sự hài lòng về tốc độ tải trang.

Nén rất thích hợp cho tệp dạng HTML bởi cú pháp của nó trùng lặp rất nhiều. Vì cơ chế hoạt động của thuật toán nén là xóa tạm thời các nội dung trùng lặp. Trong khi đó HTML thường sử dụng các thẻ giống nhau lặp đi lặp lại như <p> hay <div>, nhờ đó có thể loại bỏ tạm thời những thẻ này giúp cho tệp được rút ngắn và giảm nhẹ kích thước hơn. GZIP làm một trong những công cụ hỗ trợ tính năng nén này cho website.

Nén GZIP là gì?

Nén GZIP là gì?

GZIP là một phương pháp nén được sử dụng để truyền tải dữ liệu trên internet một các nhanh chóng nhờ vào quá trình làm giảm dung lượng của dữ liệu. Các phần mềm thường nén các tệp bằng phương pháp nén GZIP, các tệp nén của GZIP thường có định dạng với đuôi là .gz. GZIP giúp cho website tiết kiệm được lượng băng thông và cải thiện tốc độ tải trang.

GZIP chính là một tiêu chuẩn trong các phương pháp nén khác trên thị trường. Theo khảo sát của W3Techs cho thấy, hơn 99% người dùng sử dụng GZIP để nén nội dung trang web của họ.

GZIP được ra mắt trên thị trường và năm 1992, lúc đầu nó được dự định sử dụng dựa trên GNU- một phương pháp thay thế mã nguồn mở miễn phí và phương pháp nén độc quyền lúc bấy giờ. Chữ G trong GZIP được lấy từ G của GNU, nhờ vào sự tiếp cận đó mà nhiều người đã biết đến và lựa chọn sử dụng GZIP, giúp cho GZIP sớm trở nên phổ biến trên thị trường.

Tại đây, chúng tôi không đi sâu và tìm hiểu GZIP cũng như cách thức mà GZIP nén tệp. Bạn chỉ cần biết GZIP dùng thuật toán DEFLATE để nén tệp, thuật toán này không gây mất dữ liệu mà chỉ xóa các dữ liệu trùng lắp tạm thời giúp cho tệp giảm kích thước hơn. Đồng thời, chúng tôi sẽ cung cấp thông tin vì sao GZIP là lựa chọn hàng đầu trong các phương pháp nén tương tự khác.

Cách kiểm tra nén GZIP

Để chuyển tệp hoạt động với GZIP, hai điều phải xảy ra. Đầu tiên, trình duyệt web cho máy chủ web biết rằng nó có thể chấp nhận các tệp nén GZIP. Điều này được thực hiện bằng cách bao gồm tiêu đề HTTP chấp nhận mã hóa trong yêu cầu của trình duyệt: 

Để có thể chuyển hóa tệp thành GZIP, bạn cần lưu ý hai điều. 

Thứ nhất, trình duyệt web cần phải cho web server biết rằng nó có thể chấp nhận các tệp dưới dạng nén GZIP. Để hiển thị điều này, trình duyệt phải có tiêu đề là HTTP để chấp nhận mã hóa trong yêu cầu của trình duyệt:

Accept-Encoding: gzip, deflate

Hiện nay, hầu hết các trình duyệt đều mặc định có bao gồm tiêu đề HTTP trong yêu cầu.

Thứ hai, máy chủ web xử lý tiêu đề này và quyết định nén các tệp được yêu cầu hoặc để nguyên. Nếu tệp được nén bằng GZIP, máy chủ sẽ bao gồm tiêu đề sau trong phản hồi của nó:

Thứ hai, web server sẽ xử lý các yêu cầu nén hay không nén các tệp dựa theo tiêu đề mà trình duyệt đã gửi. Nếu các tệp được nén bằng GZIP, máy chủ sẽ phản hồi lại trình duyệt với tiêu đề như sau:

Content-Encoding: gzip

Nó cho biết rằng, trình duyệt phải cần giải nén các tệp theo phương thức giải nén GZIP.

Không phải tự nhiên mà server có thể gửi các tệp nén cho trình duyệt, nếu bạn muốn nén các tệp cho trang web của mình đòi hỏi bạn phải kích hoạt tính năng GZIP cho server. Tùy vào cấu trình web mà server của bạn có thể bật hoặc không bật mặc định tính năng nén GZIP. Để kiểm tra xem server của bạn có bật nén GZIP hay chưa, sau đây là một số cách mà bạn có thể tham khảo:

Kiểm tra nén GZIP trực tuyến

Kiểm tra nén GZIP trực tuyến

Nhiều trang web miễn phí sẽ xác nhận xem GZIP có được bật hay không – chỉ cần dán URL của trang web và xem kết quả của bạn. Một số trang web cũng sẽ cung cấp một báo cáo ngắn gọn giải thích GZIP đã giảm kích thước tệp đến mức nào:

Có một số trang web hỗ trợ miễn phí giúp xác nhận xem server của bạn đã được bật GZIP hay chưa, bạn chỉ cần kiểm tra bằng cách nhập URL trang web của bạn và xem kết quả. Nó sẽ thông báo cho bạn với những dòng giải thích ngắn gọn là trang web của bạn đã giảm kích thước được bao nhiêu nhờ vào GZIP:

Kiểm tra tốc độ trực tuyến

Kiểm tra tốc độ trực tuyến

Nhiều trang web hỗ trợ kiểm tra tốc độ của trang web miễn phí như PageSpeed ​​Insights và Pingdom của Google, khi trang web không đạt tốc độ tối ưu hóa, nó sẽ khuyến khích người dùng sử dụng GZIP trên các tệp cụ thể để cải thiện tốc độ tải trang. Dưới đây ví dụ về một cảnh báo của công cụ PageSpeed ​​Insights:

Kiểm tra Tiêu đề HTTP trong Công cụ dành cho nhà phát triển

Kiểm tra Tiêu đề HTTP trong Công cụ dành cho nhà phát triển

Ngoài các công cụ trên, bạn còn có thể kiểm tra xem đã bật GZIP hay chưa bằng chính công cụ được hỗ trợ trên trình duyệt của bạn. Đa số các trình duyệt đều hỗ trợ các bạn các kiểm tra các phần tử cũng như thông tin về hiệu suất tải của trang nhờ vào các bảng công cụ có sẵn. 

Trước hết, bạn cần tải trang web mà bạn muốn kiểm tra tại trình duyệt của mình, Tiếp đến, chọn tab Network tại bộ công cụ dành cho developer. Lúc này sẽ xuất hiện tất cả các danh sách resources mà máy chủ gửi về, trong trường hợp không có bạn cẩn tải lại trang. Sau khi có danh sách resources, bạn nhấp vào một resource bất kỳ để xem nội dung của nó, tại đây bạn chọn tab Headers kéo xuống phần content-encoding để xem hiện tại nội dung đang được mã hóa theo phương pháp nào.

Dưới đây là giao diện của công cụ dành cho developer để kiểm tra xem resource có được nén bằng GZIP hay không, được cung cấp bởi trình duyệt Chrome:

Cách bật tính năng nén GZIP

Do web server sẽ thực hiện quá trình nén, do đó việc cấu hình sẽ phụ thuộc vào nhà cung cấp dịch vụ lưu trữ và tùy vào từng loại cấu trúc server khác nhau.

Trong trường hợp, server của bạn không hỗ trợ bật tính năng nén GZIP, một khuyến nghị cho bạn là nên liên hệ với nhà cung cấp dịch vụ lưu trữ để xem lại các tài liệu cũng như cách hướng dẫn để bật tính năng GZIP. Server của bạn có thể không đề xuất  tính năng này hoặc thậm chí là cho phép bạn sửa đổi tệp trong server.

Sau đây là một số các giải pháp cấu hình máy chủ phổ biến mà bạn nên trải nghiệm:

Cách bật tính năng nén GZIP trên máy chủ web Apache

Đối với các trang web có server Apache, thì tính nén GZIP có thể bật thông qua tệp dạng .htaccess, tệp này có tác dụng quản lý quyền của các server khác nhau. Hãy tiến hành bổ sung đoạn mã sau vào tệp của .htaccess sau đó lưu tệp lại:

<IfModule mod_deflate.c>
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
</IfModule>

Với thao tác này sẽ giúp các bạn nén tất cả các tệp có dạng HTML, CSS, JS, XML, … Hay kiểm tra quá trình nén sau khi lưu bằng các phương pháp mà chúng tôi đã đề cập ở trên để đảm bản răng server của bạn đã được bật tính năng nén trước khi gửi tệp.

Cách bật tính năng nén GZIP trên máy chủ web NGINX

Đối với trang web sử dụng máy chỉ NGINX, thì nó chỉ hỗ trợ nén mặc định cho tệp HTML. Bạn có thể bật tính năng nén GZIP cho NGINX bằng cách mở tệp nginx.conf và tìm dòng như hình:

gzip on;

Phía dưới dòng này, bạn cần dán đoạn mã sau đây:

gzip_vary on;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_min_length 1000;
gzip_proxied no-cache no-store private expired auth;

Cuối cùng là lưu tệp lại và thực hiện tải lại cấu hình của NGINX để nó cập nhật cấu hình mới trước khi thử nghiệm xem nó có bật GZIP hay chưa.

Trong đoạn mã trên, bạn có thể tùy chỉnh hai thứ là gzip_typegzip_min_length. Với gzip_type, bạn có thể bổ sung hoặc loại bỏ bớt thư mục theo mong muốn của bạn. Còn gzip_min_length sẽ được đặt mặc định là 1000 byte tương ứng với 1KB, tuy nhiên bạn có thể tùy chỉnh dung lượng tùy thích.

Cách bật tính năng nén GZIP trong WordPress

WordPress bản chất chỉ là một phần mềm CMS chứ không phải là một cấu hình như máy chủ. Nhưng nếu bạn muốn nó thực thi một trang web WordPress thì bạn có thể tích hợp plugin hiệu suất để có thể sửa đổi các tệp trong server của bạn. Ngoài ra còn có thể tối ưu hóa hiệu suất với các công cụ như WP Super Cache, WP Rocked hay PageSpeed Ninja. Đồng thời nó cũng có thể bật tính năng GZIP, tính năng này có thể hoạt động giống như ở server Apache.

Lưu ý một lần nữa là dù cho bạn có tích hợp plugin thì không có nghĩa là bạn có toàn quyền chỉnh sửa cấu trúc server của bạn. Do đó nếu bạn có thắc mắc hay gặp sự cố trong quá trình bật tính năng nén GZIP, hãy liên hệ trực tiếp với server của bạn để được hỗ trợ.

Nén để tạo trải nghiệm tốt hơn cho người dùng

Hãy luôn nhớ rằng, mục tiêu của ứng dụng này là mang đến cho khách hàng một trải nghiệm tốt nhất khi truy cập trang web. Việc tăng tốc website giúp mang lại một khối lượng khách hàng tiềm năng khổng lồ với tốc độ tải nhanh.

Bằng phương pháp nén trên server của trang web, khách hàng truy cập nội dung sẽ nhanh hơn và hiển thị nhiều hơn, đồng thời nâng cao mức độ tương tác của khách hàng với trang web. Từ đó có khả năng cao khách hàng tiềm năng thành khách hàng chính thức. Tốc độ tải trang là một trong những yếu tố quan trọng quyết định sự thành công của trang web trực tuyến, do đó hãy tối ưu hóa nó hết mức có thể và đừng để lãng phí thời gian.

Tổng kết về GZIP

Tóm lại, để tạo nên sự thành công của một trang web không thể thiếu đi tính năng nén của máy chủ, hay nói cách khác là không thể thiếu GZIP. Nhờ nó mà website của bạn trở nên mượt mà và tốc độ hơn. Nếu bạn còn bất cứ câu hỏi nào liên quan đến GZIP, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất. Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.


Bạn đang tìm kiếm tên miền cho website lĩnh vực thể thao – Gym – Thể Hình. Hãy để tên miền .FIT cùng bạn an tỏa niềm vui thể thao với mọi người. 

Hãy nhanh tay đăng ký tên miền .FIT tại BKHOST để nhận ưu đãi hấp dẫn!

BKHOST đang áp dụng chương trình ưu đãi giảm giá sốc cho dịch vụ đăng ký mới tên miền.


Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger