Hết thời gian chờ CONNECT của proxy sau khi kết nối TCP thành công
Xác định thời gian chờ đang có hiệu lực trong CONNECT thay vì giả định rằng một kết nối TCP đã hoàn tất cũng đã hoàn tất việc thiết lập đường hầm.
Thời gian chờ kết nối TCP đã hoàn thành nhiệm vụ khi ứng dụng khách kết nối tới proxy. Lần chờ tiếp theo—nhận một phản hồi CONNECT đầy đủ—có thể do một bộ hẹn giờ khác quản lý.
Proxy có thể vẫn đang kết nối ngược lên, trao đổi thông điệp xác thực hoặc chờ một dịch vụ khác. Phản hồi thông thường của trang web chưa bắt đầu.
| Bước cuối cùng đã hoàn tất | Còn đang chờ gì? |
|---|---|
| TCP đã kết nối tới proxy | Cú bắt tay của proxy, bao gồm việc chấp nhận CONNECT |
| CONNECT đã được chấp nhận | TLS của đích, khi đích sử dụng nó |
| Yêu cầu tới đích đã gửi | Phản hồi của đích |
Tìm bộ hẹn giờ đang hoạt động khi trình kết nối đọc và ghi cú bắt tay đó. Thuộc tính có tên “response timeout” có thể chỉ có hiệu lực sau khi tuyến đường được thiết lập. Với HttpClient 5, hãy phân biệt ConnectionConfig và thời gian chờ socket của nó, cấu hình bắt tay TLS, và thời gian chờ phản hồi ở cấp yêu cầu. Áp dụng cấu hình kết nối liên quan thông qua trình quản lý mà ứng dụng khách thực tế sử dụng. Các thế hệ Apache HttpClient cũ dùng API khác, nên một đoạn mã cũ không phải là bản đồ đáng tin cậy về các trách nhiệm này.
Giữ việc từ chối CONNECT cuối cùng như một phản hồi từ proxy. Một phản hồi thành công tiếp theo là TLS bị treo là một giai đoạn lỗi khác. «TCP đã kết nối; không có phản hồi CONNECT đầy đủ trước hạn thiết lập» mô tả vấn đề chính xác hơn một thời gian chờ proxy chung chung.
Một hạn chót tổng thể có thể giới hạn thời gian chờ của bên gọi bên cạnh các giới hạn theo giai đoạn này. Khi hạn đó hết, hãy hủy hoặc đóng thao tác thông qua vòng đời mà ứng dụng khách hỗ trợ trước khi một lần thử khác tiêu tốn dung lượng kết nối.