written 8.3 years ago by |
HTTP is a protocol that clients and servers use on the web to communicate.
- It is designed for large bandwidth, low delay.
- Statelessness i.e. the server does not maintain any information about the transaction
- Client/server, request/response communication
- Resource identification, Each HTTP request includes a URI (Uniform Resource Identifier)
- Connection oriented, one connection per request
- TCP 3-way handshake, DNS lookup overheads
- Big protocol headers, uncompressed content transfer
- Primitive caching (often disabled, dynamic objects)
Security problems (using SSL/TLS with proxies)
HTTP is a stateless protocol:
HTTP supports only one request per connection. This means that with HTTP the clients connect to the server to send one request and then disconnects. This mechanism allows more users to connect to a given server over a period of time.
Client/server:
The client (ex. Web browser) makes an HTTP request. The server which stores or creates resources such as HTML files and images replies with a response.
Fig10: Client/server Connection
Request/response communication :
Transaction is initiated by a client sending request to a server. The client sends an HTTP request and the server answers with an HTML page to the client, using HTTP.
URI :
A Uniform Resource Identifier (URI), is a compact string of characters used to identify or name a resource. The main purpose of this identification is to enable interaction with representations of the resource over a network, typically the World Wide Web, using specific protocols.
Web Caching: Proxy Server :
i. HTTP supports proxy servers. A proxy server is a computer that keeps copies of responses to recent requests.
ii. The HTTP client sends a request to the proxy server. The proxy server checks its cache.
iii. If the response is not stored in the cache, the proxy server sends the request to the corresponding server.
iv. Incoming responses are sent to the proxy server and stored for future requests from other clients
HTTP Security :
i. HTTP can be run over the Secure Socket Layer (SSL). In this case, HTTP is referred to as HTTPS.
ii. HTTPS provides confidentiality, client and server authentication, and data integrity.