HTTP Keep Alive được triển khai như thế nào? Nó có sử dụng nội bộ TCP Keep Alive không? Nếu không, máy chủ sẽ phát hiện ra nếu máy khách bị chết hoặc còn sống?HTTP Keep Alive và TCP tiếp tục hoạt động
Trả lời
HTTP Keep-Alive là một tính năng của giao thức HTTP. Web-server, triển khai tính năng Keep-Alive, phải kiểm tra kết nối/socket định kỳ (đối với yêu cầu HTTP đến) trong khoảng thời gian kể từ khi nó gửi phản hồi HTTP cuối cùng (trong trường hợp có yêu cầu HTTP tương ứng). Nếu không nhận được yêu cầu HTTP nào vào thời điểm thời gian lưu giữ được định cấu hình (giây) máy chủ web sẽ đóng kết nối. Không yêu cầu HTTP tiếp theo nào có thể thực hiện được sau khi 'đóng' được thực hiện bởi Máy chủ Web. Mặt khác, TCP Keep-Alive được quản lý bởi hệ điều hành trong lớp TCP. HTTP Keep-Alive và TCP Keep-Alive là những thứ hoàn toàn không liên quan.
Tôi biết đây là một câu hỏi cũ, nhưng vẫn còn:
HTTP Keep-Alive là một tính năng cho phép HTTP client (thường là trình duyệt) và máy chủ (máy chủ web) để gửi nhiều cặp request/response trên cùng một kết nối TCP. Điều này làm giảm độ trễ cho yêu cầu HTTP thứ 2, thứ 3, ..., giảm lưu lượng mạng và tương tự.
TCP keepalive là một con thú hoàn toàn khác. Nó giữ kết nối TCP được mở bằng cách gửi các gói nhỏ. Ngoài ra, khi gói được gửi, nó sẽ được kiểm tra để người gửi được thông báo ngay khi kết nối bị ngắt (lưu ý rằng đây không phải là trường hợp khác - cho đến khi chúng ta cố gắng giao tiếp thông qua kết nối TCP chúng ta không biết nó có ổn không).
Để trả lời câu hỏi của bạn về HTTP Keep-Alive:
How is HTTP Keep Alive implemented?
Nói một cách đơn giản, máy chủ HTTP không đóng kết nối TCP sau mỗi câu trả lời nhưng chờ đợi một thời gian nếu một số HTTP khác yêu cầu sẽ đi qua nó quá. Sau khi một số thời gian chờ nó đóng nó anyway.
Does it internally use TCP Keep Alive?
Không, ít nhất tôi không thấy điểm nào trong đó.
If not, how does the server detect if the client is dead or alive?
Nó không cần - không cần. Nếu một khách hàng gửi một yêu cầu, nó sẽ nhận được phản hồi. Nếu máy khách không gửi bất cứ thứ gì qua kết nối TCP (có thể vì kết nối đã chết) thì thời gian chờ sẽ đóng kết nối; tất nhiên khách hàng sẽ nhận thấy điều này và sẽ gửi yêu cầu thông qua kết nối TCP khác nếu cần.
http keep-alive chỉ làm cho tcp sống lâu hơn để chuyển yêu cầu đa http. Sau khi hết thời gian chờ, kết nối tcp sẽ bị đóng. tcp keep-alive chỉ là một cơ chế giữ kết nối tcp hoặc kiểm tra kết nối tcp không được đóng
- 1. Tomcat, HTTP Keep-Alive và HttpsUrlConnection của Java
- 2. Keep-alive hoạt động như thế nào với ThreadPoolExecutor?
- 3. HTTP: mối quan hệ giữa pipelining, keep-alive và Server Sent Events là gì?
- 4. NSURLConnection and keep-alive
- 5. "Connection: Keep-Alive" trong phản hồi của máy chủ
- 6. Làm thế nào để đặt thời gian chờ HTTP Keep-Alive trong máy chủ nodejs
- 7. UIWebView và tiếp tục hoạt động?
- 8. Doesnt http Keep-Alive giải quyết vấn đề mà giải quyết cuộc thăm dò dài?
- 9. Cách tắt Keep-Alive trên mỗi Danh bạ
- 10. Làm cách nào để tắt HTTP Keep-Alive trong ASP.NET MVC?
- 11. Kết nối tiếp tục không hoạt động với System.Net.Http.HttpClient trên một số máy chủ nhất định
- 12. NSURLConnection bỏ qua thời gian chờ Keep-Alive?
- 13. Bạn có thể sử dụng gzip qua SSL không? Và kết nối: Tiêu đề Keep-Alive
- 14. Không thể tiếp tục hoạt động
- 15. Không thể tiếp tục Hoạt động lỗi
- 16. Phản hồi json rất dài dừng và gửi tiêu đề HTTP dưới dạng văn bản rồi tiếp tục
- 17. tiếp tục tải lên bằng HTTP?
- 18. Có thể bật Keep-alive với bộ cân bằng tải không?
- 19. Kết nối HTTP liên tục với RestSharp
- 20. Android: tiếp tục Hoạt động với singleTop hoặc SingleTask
- 21. TCP, HTTP và Điểm đa luồng ngọt
- 22. "Chủ đề đã bắt đầu" khi tiếp tục hoạt động
- 23. Android: Khôi phục Hoạt động đang hoạt động khi tiếp tục ứng dụng
- 24. Tại sao không chỉnh sửa và tiếp tục hoạt động trên CLR x64?
- 25. Tải lên các thách thức và HTTP 401. Tại sao nó không hoạt động liên tục?
- 26. Máy chủ Java HTTP không hoạt động
- 27. MSMQ hoạt động trên TCP hoặc UDP?
- 28. Cách xử lý thông báo HTTP "100 tiếp tục"?
- 29. Chỉnh sửa và Tiếp tục không hoạt động trong VS 2010/ASP.Net MVC 2
- 30. Cách "Chỉnh sửa và tiếp tục" hoạt động trong Visual Studio?