Hết thời gian nhàn rỗi của proxy trong các tác vụ HTTP dài
Chọn thăm dò hoặc một định dạng truyền phát được xác định khi công việc máy chủ dài gặp giới hạn nhàn rỗi của proxy, thay vì chèn các byte tùy tiện vào phản hồi cuối cùng.
Nếu một dịch vụ im lặng trong nhiều phút và proxy hết thời gian, hãy chọn những gì máy khách nên nhận trước khi thêm byte nhịp tim. Kéo dài bộ hẹn giờ có thể giúp một lần chờ; hợp đồng phản hồi quyết định tiến độ nào là hợp lệ.
| Thiết kế ứng dụng | Hợp đồng tiến độ |
|---|---|
| Tác vụ không đồng bộ | 202 Accepted với một biểu diễn mô tả việc giám sát, tiếp theo là các yêu cầu trạng thái hữu hạn và trạng thái hoàn tất/thất bại rõ ràng |
| Luồng Server-Sent Events | Content-Type: text/event-stream và các bản ghi mà máy khách SSE hiểu |
202 không hứa rằng tác vụ sẽ thành công. Đối với SSE, một bản ghi chú thích có thể trông như sau:
: heartbeat
Dấu hai chấm biến nó thành chú thích thay vì sự kiện ứng dụng. Ghi chú soạn thảo của HTML đề xuất chú thích định kỳ khoảng mỗi 15 giây chống lại một số hành vi nhàn rỗi cũ của proxy; đó là hướng dẫn, không phải bảo đảm thời gian chờ phổ quát.
Hoàn tất tiêu đề và đảm bảo ứng dụng/ngăn xếp phục vụ giải phóng các bản ghi thay vì đệm chúng cục bộ. Các byte chưa gửi không thể giữ một trung gian hạ nguồn hoạt động.
Không chèn chú thích SSE vào nội dung JSON hoặc nhị phân thông thường. Một chunk có độ dài bằng không của HTTP/1.1 kết thúc phần thân chunked, vì vậy nó không phải là nhịp tim rỗng có thể lặp lại.
Duy trì thời hạn vận hành và chính sách hủy bỏ. Chỉ hoạt động lưu lượng không cho thấy tiến độ công việc hữu ích hoặc kết quả cuối cùng hợp lệ.