Chuyển đến nội dung
Tất cả bài viết
Blog & hướng dẫn/Xử lý lỗi & Bảo mật
Xử lý lỗi & Bảo mật

Nén HTTP khi dùng Proxy: Phân biệt byte truyền và nội dung sau giải nén

Đọc Content-Encoding và hành vi client để không nhầm khác biệt dung lượng với dữ liệu bị cắt hoặc giải nén hai lần.

Nén HTTP khi dùng Proxy: Phân biệt byte truyền và nội dung sau giải nén
NỘI DUNG BÀI VIẾTHướng dẫn chi tiết từ ProxySmart

Công cụ mạng báo một dung lượng, còn ứng dụng lưu một dung lượng khác chưa chắc là lỗi. Nội dung có thể được nén trên đường truyền rồi giải nén trước khi phần mềm sử dụng.

Tách hai đại lượng

MDN về nén HTTP giải thích nén nội dung và các lớp liên quan. Khi báo cáo, phân biệt byte truyền quan sát được với byte của nội dung ứng dụng sau xử lý. Không dùng một con số chung cho cả hai.

Kiểm tra client đã xử lý gì

  1. Ghi Accept-Encoding mà client thực gửi.
  2. Đọc Content-Encoding và Content-Type của phản hồi.
  3. Đối chiếu tài liệu thư viện về tự động giải nén.
  4. Kiểm tra nội dung đã lưu là dạng nén hay đã giải nén.
  5. Ghi rõ công cụ và vị trí đo dung lượng.

Không tự sửa header để làm con số khớp nếu body chưa được xử lý tương ứng. Header và dữ liệu không nhất quán có thể tạo lỗi khó chẩn đoán ở lớp sau.

Ví dụ minh họa

Thư viện đã giải nén phản hồi, nhưng đoạn mã của ứng dụng lại cố giải nén lần nữa. Bước xử lý thất bại dù kết nối hoàn tất. Hãy kiểm tra hành vi client và bỏ xử lý trùng theo thiết kế; đừng thay proxy chỉ vì hàm giải nén báo lỗi.

Thử với nội dung đã biết

Dùng một tài nguyên thử do bạn kiểm soát, có nội dung và checksum tham chiếu. So sánh dữ liệu cuối cùng mà ứng dụng nhận. Nếu thử các tùy chọn nén, chỉ thay một tùy chọn mỗi lần, ghi cả mã HTTP và trạng thái giải nén.

Nén không luôn tiết kiệm

Tệp đã nén có thể không được lợi khi nén thêm. Không kết luận trước về tỷ lệ tiết kiệm cho mọi nội dung. Với luồng realtime, kiểm tra cả độ trễ hiển thị; buffering liên quan xử lý nội dung có thể làm kết quả khác với một tệp tải hoàn chỉnh.

Hạn mức băng thông của gói

Cách nhà cung cấp tính dung lượng cần được xác nhận riêng. Con số sau giải nén trong ứng dụng không tự đại diện cách tính phí. Đọc tài liệu gói và hỏi rõ đơn vị, chiều lưu lượng, lớp đo trước khi ước tính chi phí.

Tham khảo băng thông proxy theo gói. Không đưa log nội dung khách hàng vào báo cáo công khai.