The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This is the foundation for data communication for the World Wide Web (i.e., Internet) since 1990. HTTP is a generic and stateless protocol which can be used for other purposes as well using extensions of its request methods, error codes, and headers.
Basically, HTTP is a TCP/IP based communication protocol, that is used to deliver data (HTML files, image files, query results, etc.) on the World Wide Web. The default port is TCP 80, but other ports can be used as well. It provides a standardized way for computers to communicate with each other. HTTP specification defines how clients' request data will be constructed and sent to the server, and how the servers respond to these requests.
Http client is a transfer library, it resides on the client side, sends and receives HTTP messages. It provides up to date, feature-rich and, efficient implementation which meets the recent HTTP standards.
In addition to this using client library, one can build HTTP based applications such as web browsers, web service clients, etc.
Following are the prominent features of Http client −
HttpClient library implements all the available HTTP methods.
HttpClient library provides APIs to secure the requests using the Secure Socket Layer protocol.
Using HttpClient, you can establish connections using proxies.
You can authenticate connections using authentication schemes such as Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session etc.
HttpClient library supports sending requests through multiple threads. It manages multiple connections established from various threads using ClientConnectionPoolManager.
Using Apache HttpClient library, you can set connection timeouts.