Tôi phải triển khai một máy khách HTTP trong Java và theo nhu cầu của tôi, có vẻ như cách hiệu quả nhất để làm điều đó là triển khai đường dẫn HTTP (theo RFC2616).HTTP 1.1 Đường ống
Ngoài ra, tôi muốn gửi đường ống POST. (Ngoài ra tôi không nói về ghép kênh. Tôi đang nói về pipelining tức là nhiều yêu cầu qua một kết nối trước khi nhận bất kỳ yêu cầu HTTP phản hồi nào)
Tôi không thể tìm thấy thư viện của bên thứ ba nói rõ rằng nó hỗ trợ pipelining. Nhưng tôi có thể sử dụng ví dụ Apache HTTPCore để xây dựng một khách hàng như vậy, hoặc nếu tôi phải tự xây dựng nó.
Vấn đề tôi gặp phải là ý tưởng hay. Tôi đã không tìm thấy bất kỳ tài liệu tham khảo có thẩm quyền rằng HTTP pipelining là một cái gì đó nhiều hơn một mô hình lý thuyết và được thực hiện đúng bởi các máy chủ HTTP. Ngoài ra, tất cả các trình duyệt hỗ trợ pipelining đều có tính năng này tắt theo mặc định.
Vì vậy, tôi nên cố gắng triển khai ứng dụng khách như vậy hoặc tôi sẽ gặp nhiều rắc rối do triển khai của máy chủ (hoặc proxy). Có bất kỳ tài liệu tham khảo nào đưa ra các hướng dẫn về chúng không?
Nếu đó là ý tưởng tồi thì mô hình lập trình thay thế cho hiệu quả là gì? Các kết nối TCP riêng biệt?
Không hoàn toàn những gì bạn cần, nhưng serf là thư viện C triển khai đường dẫn HTTP http://code.google.com/p/serf/ Tôi không chắc chắn 100% nếu nó hỗ trợ bài đăng pipelined. – Rup
Cảm ơn bạn, tôi phải làm điều đó trong java – Cratylus
@ user384706 Không bao giờ thử serf, nhưng nếu thực sự làm những gì bạn muốn và mọi thứ khác không thành công, thì bạn luôn có thể thử JNI/JNA. – luiscubal