Open In App

HTTP Non-Persistent & Persistent Connection | Set 1

The Hypertext Transfer Protocol (HTTP) is an application-level protocol that uses TCP as an underlying transport and typically runs on port 80. HTTP is a stateless protocol i.e. server maintains no information about past client requests. 

HTTP Connections

  1. Non-Persistent
  2. Persistent

Basic Pre-Requisite

The terminology which we must know before going deep into Persistent & Non-Persistent Connections is 



  1. RTT(Round Trip Time)
  2. TCP 3-Way Handshake

1. RTT: Time for a small packet to travel from client to server and back.

RTT = 2 X propagation time

1. For a connection Persistent or Non-persistent it is sure that to initiate a TCP connection one RTT is used. 



2. One RTT is used for the HTTP request and the first few bytes to the HTTP response to return. So to know the total file transmission time.

Total = 2RTT + transmit time

2. TCP 3-Way Handshake: TCP Connection establishes in 3 ways, that’s why it is called a 3-way Handshake.

Difference between Persistent and Non-Persistent Connections

Persistent HTTP Non-Persistent HTTP                                                                           
The server leaves the connection open after sending a response. Requires 2 RTTs per object.
Subsequent HTTP messages between the same client/server are sent over an open connection. OS overhead for each TCP connection
The client sends requests as soon as it encounters a referenced object. Browsers often open parallel TCP connections to fetch referenced objects.
As little as one RTT for all the referenced objects. Here, at most one object can be sent over one TCP Connection.

Non-Persistent Connection

Non-Persistent Connections are those connections in which for each object we have to create a new connection for sending that object from source to destination. Here, we can send a maximum of one object from one TCP connection.

There are two types:

1. Non-Persistent-Without parallel connection: Each objection takes two RTTs (assuming no window limit) one for TCP connection and the other for HTTP image/text file.

2. Non-Persistent-With parallel connection: Non-Persistent with a parallel connection requires extra overhead in transferring data.

Non-Persistent & Parallel Connection

Advantages of Non-Persistent Connection

  1. Wastage of Resources is very less because the connection opens only when there is some data to be sent.
  2. Non-Persistent Connection is more secure because after sending the data, the connection gets terminated and nothing can be shared thereafter.

Disadvantages of Non-Persistent Connection

  1. In Non-Persistent Connection, it requires a greater CPU overhead for the transmission of data

Persistent Connection

1. Non-Pipelined Persistent Connection: In a Non-pipeline connection, we first establish a connection that takes two RTTs then we send all the object’s images/text files which take 1 RTT each (TCP for each object is not required). 

2. Pipelined Persistent Connection: In Pipelined connection, 2RTT is for connection establishment and then 1RTT(assuming no window limit) for all the objects i.e. images/text. 

Persistent Without Pipelining and with Pipelining

Advantages of Persistent Connections

Disadvantages of Persistent Connections

Article Tags :