Tối ưu hoá hiệu quả nội dung

Ilya Grigorik
Ilya Grigorik

Các ứng dụng web của chúng ta tiếp tục phát triển về phạm vi, tham vọng và chức năng – đó là một điều tốt. Tuy nhiên, hành trình không ngừng nghỉ đến với môi trường web phong phú hơn đang thúc đẩy một xu hướng khác: lượng dữ liệu được mỗi ứng dụng tải xuống tiếp tục tăng với tốc độ ổn định. Để mang lại hiệu suất tuyệt vời, chúng ta cần tối ưu hoá việc phân phối từng byte!

Ứng dụng web hiện đại trông như thế nào? Lưu trữ HTTP có thể giúp chúng tôi trả lời câu hỏi này. Dự án theo dõi cách web được xây dựng bằng cách thu thập dữ liệu định kỳ các trang web phổ biến nhất (hơn 300.000 trang web từ danh sách 1M hàng đầu của Alexa) và ghi lại và tổng hợp phân tích về số lượng tài nguyên, loại nội dung và siêu dữ liệu khác cho mỗi điểm đến riêng lẻ.

Xu hướng lưu trữ HTTP

Phân vị thứ 50 Phân vị thứ 75 Phân vị thứ 90
HTML 13 KB 26 KB 54 KB
Hình ảnh 528 KB 1.213 KB 2.384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Khác 282 KB 308 KB 353 KB
Tổng cộng 1.054 KB 1985 KB 3.486 KB

Dữ liệu trên ghi lại xu hướng tăng số lượng byte được tải xuống cho các đích đến phổ biến trên web từ tháng 1 năm 2013 đến tháng 1 năm 2014. Tất nhiên, không phải mọi trang web phát triển với cùng một tốc độ hoặc yêu cầu cùng một lượng dữ liệu, do đó lý do tại sao chúng tôi làm nổi bật các lượng tử khác nhau trong bản phân phối: 50th (trung bình), 75th và 90th.

Một trang web trung bình vào đầu năm 2014 bao gồm 75 yêu cầu tổng cộng lên tới 1054 KB tổng số byte được chuyển và tổng số byte (và yêu cầu) đã tăng với tốc độ ổn định trong suốt năm trước. Bản thân điều này không có gì đáng ngạc nhiên, nhưng nó cũng mang lại những hệ quả quan trọng về hiệu suất: đúng vậy, tốc độ Internet đang ngày càng nhanh hơn, nhưng tốc độ nhanh hơn ở các mức giá khác nhau ở các quốc gia khác nhau và nhiều người dùng vẫn phải tuân theo hạn mức dữ liệu và các gói có định mức đắt tiền, đặc biệt là trên thiết bị di động.

Không giống như các ứng dụng dành cho máy tính để bàn, ứng dụng web không yêu cầu quy trình cài đặt riêng biệt: nhập URL và chúng tôi sẽ thiết lập và chạy -- đó là tính năng chính của web. Tuy nhiên, để làm được điều này, chúng tôi thường phải tìm nạp hàng chục, đôi khi là hàng trăm tài nguyên, tất cả đều có thể lên tới megabyte dữ liệu và phải tập hợp lại trong vài trăm mili giây nhằm hỗ trợ trải nghiệm web tức thì mà chúng tôi đang hướng tới.

Việc đạt được trải nghiệm web tức thì đáp ứng những yêu cầu này không phải là công việc đơn giản. Đó là lý do tại sao việc tối ưu hoá hiệu quả của nội dung lại quan trọng: loại bỏ các nội dung tải xuống không cần thiết, tối ưu hoá việc mã hoá chuyển từng tài nguyên thông qua nhiều kỹ thuật nén và tận dụng việc lưu vào bộ nhớ đệm bất cứ khi nào có thể để loại bỏ các nội dung tải xuống dư thừa.