Because the TCP/IP protocol is so robust, establishing a new TCP connection for every HTTP request is relatively expensive in terms of network roundtrips. The two versions of HTTP (1.0 and 1.1) avoid incurring this overhead differently.
HTTP 1.0 transactions typically involved a client opening a TCP connection with the Web server and issuing an HTTP request. The server would then send its response and close the TCP connection. The client could optionally ask that the TCP connection remain open beyond the first transaction with the HTTP header Connection: keep-alive.
Starting with HTTP 1.1, persistent connections are implicit; in other words, the Web client and Web server keep the underlying TCP connection open until either sends an indication that the connection can be closed with the Connection: close header. Because the connection remains open, a way to designate the end of the entity-body is required. The Content-Length header performs this function by specifying the size of the entity-body, in bytes.