Text Compression
Công nghệ giảm kích thước dữ liệu văn bản. Các thuật toán như gzip, Brotli và deflate được sử dụng phổ biến.
Nén văn bản là công nghệ giảm kích thước dữ liệu bằng cách khai thác sự dư thừa trong dữ liệu văn bản. Trên web, các thuật toán như gzip, Brotli và deflate được sử dụng rộng rãi để nén phản hồi HTTP, cải thiện đáng kể tốc độ tải trang. Tệp văn bản có độ dư thừa cao hơn so với hình ảnh và video, khiến nén đặc biệt hiệu quả.
gzip là định dạng nén được áp dụng rộng rãi nhất, được hỗ trợ bởi hầu hết tất cả trình duyệt và máy chủ. Brotli, được Google phát hành năm 2015, đạt tỷ lệ nén tốt hơn 15-25% so với gzip. Ưu điểm của nó đặc biệt rõ rệt cho nén trước nội dung tĩnh. Zstandard (zstd), được Facebook phát triển, cung cấp sự cân bằng tuyệt vời giữa tốc độ nén và tỷ lệ nén.
Nén phía máy chủ được bật bằng gzip on; or brotli on; trong Nginx, và mod_deflate trong Apache. CDN như CloudFront và Cloudflare cung cấp nén tự động, cho phép phân phối nén mà không cần cấu hình máy chủ gốc. Trình duyệt truyền đạt các định dạng được hỗ trợ qua tiêu đề Accept-Encoding , và máy chủ phản hồi bằng tiêu đề Content-Encoding .
Một quan niệm sai lầm phổ biến là tất cả tệp nên được nén. Tệp nhị phân như JPEG, PNG và MP4 đã được nén, nên nén lại chúng cho kết quả giảm kích thước không đáng kể trong khi lãng phí tài nguyên CPU. Nén nên giới hạn ở các tệp dựa trên văn bản như HTML, CSS, JavaScript, JSON, XML và SVG. Tệp rất nhỏ (dưới 1KB) thực tế có thể tăng kích thước sau khi nén do chi phí tiêu đề.
Từ góc độ đếm ký tự, dữ liệu nén ở định dạng nhị phân và khái niệm số ký tự không áp dụng. Số ký tự trước khi nén và số byte sau khi nén là các chỉ số khác nhau. Tuy nhiên, văn bản có nhiều ký tự hơn có xu hướng hưởng lợi nhiều hơn từ nén. Văn bản có từ và cụm từ lặp lại đạt tỷ lệ nén cao hơn, trong khi chuỗi ngẫu nhiên nén kém.