TCP/IP, HTTP and Other Protocols

A protocol is a set of rules and guidelines that dictate how communication should take place between two or more entities. In networking, a protocol is a set of rules for formatting and transmitting data over a computer network. Network protocols are like a common language for computers. The computers within a network may use vastly different software and hardware; however, the use of protocols enables them to communicate with each other regardless.

In 1973, the U.S. Defense Advanced Research Projects Agency (DARPA) initiated a research program to investigate techniques and technologies for interlinking packet networks of various kinds. In May 1974, Vint Cerf and Bob Kahn, who are often referred to as the “fathers of the internet”, published a paper entitled “A Protocol for Packet Network Intercommunication”. This paper described an internetworking protocol called “Transmission Control Program” for sharing resources using packet switching among network nodes. This monolithic protocol was later divided into a modular architecture consisting of the Transmission Control Protocol (TCP) and the Internet Protocol (IP). This resulted in a networking model that became known informally as TCP/IP, and eventually became the standard for all internet communication. Today, TCP/IP is used by nearly all computer networks, including the internet, and has become the backbone of global communication and information exchange.

In 1989, while working at the European Organization for Nuclear Research (CERN), Tim Berners-Lee wrote a proposal to build a hypertext system over the internet. Initially called the Mesh, it was later renamed the World Wide Web during its implementation in 1990. The HyperText Transfer Protocol (HTTP) was built on top of TCP/IP, initially as a simple protocol to retrieve HyperText Markup Language (HTML) documents from websites. HTTP has evolved since then and became the most common protocol in use on the internet. Today it is used not only for delivering Web content but also as the underlying protocol for Web services, which enable Web and mobile apps.