Điều tra ERR_INVALID_CHUNKED_ENCODING qua proxy
Xác định nơi phản hồi trở nên không đầy đủ hoặc sai lệch bằng cách so sánh cách đóng khung, điểm dừng và nhật ký tuyến proxy.
ERR_INVALID_CHUNKED_ENCODING nghĩa là phản hồi không thể được giải mã như một thông điệp chunked hoàn chỉnh. Việc một phần nội dung đến thành công không chứng minh phần còn lại của phản hồi là hợp lệ.
- Giữ lại các tiêu đề phản hồi và lỗi giải mã đầu tiên. Xác định thành phần nào đã báo lỗi và liệu thông điệp có được khai báo là chunked hay không.
- Tìm điểm dừng. Mã hóa chunked của HTTP/1.1 yêu cầu kích thước, dữ liệu tương ứng, dấu phân cách và một khối kết thúc, cùng trailers khi áp dụng. Đóng kết nối sớm và kích thước sai lệch là những manh mối khác nhau.
- So sánh cùng một yêu cầu được kiểm soát trên tuyến dự định. Đối chiếu yêu cầu với nhật ký proxy và thượng nguồn. Tìm việc đóng từ thượng nguồn, biến đổi bởi trung gian hoặc ứng dụng hủy tại điểm đó.
Đừng suy ra cách đóng khung HTTP từ kích thước bộ đệm TCP. Một lần đọc socket có thể chứa nửa khối hoặc nhiều khối; thư viện sau đó có thể đưa nội dung đã giải mã ra trong các bộ đệm khác nhau. Một bản ghi JSON lại có ranh giới khác. Proxy có thể đóng khung lại phản hồi mà không giữ ranh giới gói ban đầu.
Nếu bằng chứng chỉ đến một bản triển khai Squid cũ, hãy giữ số bản phát hành của nó cùng với kết luận đó. Các khuyến nghị vá lỗi cho Squid 2.x không mô tả mọi bản phát hành hiện tại. Giữ nguyên việc giải mã thông thường và xác thực chứng chỉ trong khi so sánh: việc che lấp lỗi có thể khiến một tệp không đầy đủ trông giống như tải xuống thành công.