Proxy dân cư và proxy di động được tính phí theo lưu lượng, và ba quyết định kỹ thuật — tải gì, nén gì và lưu đệm gì — ảnh hưởng đến hóa đơn nhiều hơn việc chọn kênh rẻ nhất. Chúng ta sẽ xem nên chặn gì trước tiên, nén phản hồi hoạt động ra sao, vì sao cần bộ nhớ đệm giữa các lần chạy và đâu là ranh giới mà vượt qua đó, việc tiết kiệm bắt đầu làm hỏng chính phép kiểm tra.

Chặn ảnh, phông chữ, video và trình theo dõi

Bốn loại tài nguyên mang lại phần tiết kiệm chính. Ảnh là khoản nặng nhất trên trang sản phẩm, khoảng 2–5 MB mỗi trang. Phông chữ nhẹ hơn nếu tính riêng từng tệp, nhưng thường được tải theo cả nhóm — vài họ phông chữ dễ dàng cộng thêm một megabyte cho mỗi trang. Video tự động phát là một nhóm riêng: hàng chục megabyte mỗi phút với luồng phát liên tục, một trang dạng bảng tin không ngừng có thể ngốn hết gói lưu lượng nhanh hơn bất kỳ thành phần nào khác. Trình theo dõi và script quảng cáo tự chúng khá nhẹ, nhưng kéo theo cả chuỗi hàng chục yêu cầu bổ sung tới các tên miền bên thứ ba.

Việc chặn được cấu hình ở cấp công cụ tự động hóa — bằng cách chặn yêu cầu theo loại tài nguyên (image, media, font) hoặc theo tên miền của các mạng phân tích và quảng cáo đã biết. Với những tác vụ chỉ cần văn bản — giá, tình trạng còn hàng, trạng thái — việc chặn cả bốn loại này không làm thay đổi kết quả: dữ liệu cần thiết nằm trong HTML hoặc phản hồi API, chứ không nằm trong chính các tệp đa phương tiện.

Nén phản hồi

Tiêu đề Accept-Encoding với các giá trị gzip, deflate, br cho máy chủ biết rằng máy khách sẵn sàng nhận phản hồi đã nén; đa số máy chủ nén các định dạng văn bản — HTML, JSON, CSS, JS — nhưng không đụng đến các định dạng vốn đã nén như JPEG và MP4, vì nén lại lần nữa không mang lại lợi ích. Từ đó rút ra kết luận thực tế: nén giúp tiết kiệm lưu lượng chủ yếu trên các trang văn bản và phản hồi API, chứ không phải trên các trang sản phẩm có nhiều ảnh, nơi phần lớn dung lượng vốn nằm ở đa phương tiện.

Bản thân kênh proxy không nén lưu lượng — việc nén được thiết lập ở phía máy chủ và máy khách. Vai trò của proxy ở đây chỉ là thụ động: nó chuyển tiếp phản hồi đã nén hoặc chưa nén, vì vậy mức tiết kiệm nhờ nén không thay thế cho mức tiết kiệm nhờ chặn đa phương tiện, mà cộng dồn với nó.

Bộ nhớ đệm giữa các lần chạy và việc không tải lại trang

Quy trình tự động hóa mà mỗi lần chạy đều bắt đầu từ một hồ sơ trình duyệt sạch sẽ tải lại toàn bộ tài nguyên tĩnh — phông chữ, script của thư viện, CSS — vốn không thay đổi kể từ lần chạy trước. Một thư mục bộ nhớ đệm cố định, được dùng lại giữa các lần chạy, loại bỏ sự dư thừa này: những tệp lặp lại được trình duyệt lấy từ ổ đĩa cục bộ thay vì yêu cầu lại qua proxy.

Phần tiết kiệm thứ hai là không yêu cầu cùng một trang hai lần trong một tác vụ. Các yêu cầu có điều kiện với tiêu đề If-Modified-Since và If-None-Match cho phép máy chủ trả về trạng thái 304 không kèm nội dung phản hồi nếu trang không thay đổi kể từ lần kiểm tra trước — điều này tiết kiệm gần như toàn bộ lưu lượng trên các trang không đổi khi giám sát lặp lại. Cách đưa việc dùng proxy vào chính quy trình tự động hóa được trình bày trong bài proxy cho tự động hóa trình duyệt.

Cách đo mức tiết kiệm “trước / sau” trên một tác vụ thực tế

Nên đánh giá hiệu quả không phải trên một bài thử giả lập, mà trên một tác vụ thực tế với bộ trang cố định. Lần chạy “trước”: cài đặt mặc định, tải đầy đủ mọi tài nguyên, ghi lại mức tiêu thụ trong trang tài khoản cho một lượt chạy. Lần chạy “sau”: cùng bộ trang đó, bật chặn đa phương tiện và bộ nhớ đệm, cùng một bộ đếm lưu lượng. Chênh lệch giữa hai con số là mức tiết kiệm thực tế cho đúng tác vụ của bạn, chứ không phải con số trung bình lấy từ trường hợp của người khác.

Nên đối chiếu không chỉ khối lượng lưu lượng mà cả số yêu cầu thất bại và số lần thử lại: nếu mức tiết kiệm về dung lượng đi kèm số lần thử lại tăng lên, một phần lợi ích sẽ bị mất đi. Danh sách các chỉ số cho việc kiểm tra như vậy có trong bài cách kiểm tra chất lượng proxy.

Khi nào tiết kiệm bắt đầu làm hỏng chính phép kiểm tra

Mỗi thủ thuật đều có một điểm mà vượt qua đó, việc tiết kiệm lưu lượng thay thế luôn kết quả của tác vụ. Việc chặn ảnh làm hỏng phép kiểm tra nếu bản thân tác vụ mang tính trực quan: đối chiếu banner, chụp màn hình gian hàng, kiểm thử giao diện thích ứng. Việc tắt script làm hỏng quá trình thu thập dữ liệu nếu nội dung được tải bằng JavaScript sau khi đã tải xong HTML ban đầu — nếu không chạy script, trang sẽ vẫn trống.

Bộ nhớ đệm lỗi thời là một rủi ro riêng: nếu bạn kiểm tra giá hoặc tình trạng còn hàng hiện tại, phản hồi đã lưu đệm sẽ hiển thị dữ liệu của hôm qua như thể là dữ liệu mới. Nên tắt việc tiết kiệm trên đa phương tiện và bộ nhớ đệm ở những nơi tác vụ kiểm tra đúng thứ mà việc tiết kiệm đó che đi: giá thay đổi liên tục, trạng thái hiển thị của trang hoặc nội dung phụ thuộc vào độ mới của dữ liệu. Việc chạy theo kênh rẻ nhất thay vì cấu hình tiết kiệm hợp lý thường cho kết quả ngược lại — chi tiết hơn trong bài proxy rẻ và proxy đắt.

Câu hỏi thường gặp

Chặn ảnh và video thực sự tiết kiệm được bao nhiêu lưu lượng?

Trên các trang có đa phương tiện — gấp 3–10 lần tùy theo số lượng ảnh ban đầu, trên các trang dạng bảng tin video — nhiều hơn cả một bậc, vì video tự động phát mà không bị chặn sẽ ngốn hàng chục megabyte mỗi phút. Chỉ lần chạy “trước/sau” trên tác vụ của chính bạn mới cho con số chính xác — các ước tính trung bình từ dự án của người khác không tính đến cấu trúc của những trang cụ thể.

Có thể nén ngay lập tức những ảnh đã tải thông qua proxy không?

Các proxy thông thường không chuyển mã hay nén lại đa phương tiện — chúng chuyển tiếp phản hồi của máy chủ nguyên trạng. Có những dịch vụ biến đổi lưu lượng, nhưng đó là một loại sản phẩm riêng, chứ không phải đặc tính của kênh dân cư hay kênh di động; rẻ hơn và đáng tin cậy hơn là đơn giản không tải đa phương tiện mà kết quả không cần đến.

Làm sao biết bộ nhớ đệm hay việc chặn đa phương tiện đã làm hỏng phép kiểm tra chứ không phải tiết kiệm được lưu lượng?

Hãy so sánh kết quả của tác vụ, chứ không chỉ khối lượng lưu lượng: nếu sau khi tối ưu, giá, tình trạng còn hàng hoặc trạng thái đầu ra không còn khớp với những gì bạn thấy khi xem thủ công trên trang web, nghĩa là việc tiết kiệm đã đụng đến thứ lẽ ra phải giữ nguyên. Nên kiểm tra định kỳ, chứ không chỉ một lần khi cấu hình.

Việc chọn kênh phù hợp với tác vụ — địa chỉ dân cư và di động tính phí theo lưu lượng hoặc proxy trung tâm dữ liệu tính theo tháng — có trong mục proxy.