Application Layer

Applications use high-level network protocols to communicate with servers. You can think of these protocols as the language that is used between a server and a client.

A simple example is your web browser. Independent if it is Firefox, Chrome, Edge, Safari, each of these client applications knows how to communicate with a web server to retrieve a web page. The application protocol used here is the Hypertext Transport Protocol (HTTP). It is a text-based protocol, where clients will send a request to get the webpage like this:

GET /index.html HTTP/2
Host: www.example.com

This will request the page http://www.example.com/index.html. The corresponding response by the HTTP server could be:

HTTP/2 200 OK
date: Mon, 18 Jan 2021 16:30:13 GMT
content-type: text/html; charset=UTF-8
content-encoding: en
server: Apache
content-length: 92

<html>
<head>
  <title>Example</title>
</head>
<body>
  <p>Hello World!</p>
</body>
</html>

In this case the content is a HTML document, which is text. Binary responses are also possible. Both client requests and server response have HTTP headers, which add more information to about the request/response.

HTTP is just one of many application protocols. Other examples include HTTPS, FTP, SMTP, IMAP, SSH, and many more.

Note

The OSI model defines two more layers below this one, the presentation and session layer. Many application protocols like HTTP make no distinction between these three layers.