Протокол HTTP предназначен для передачи данных и на сегодняшний день является одним из самых используемых протоколов уровня приложений. Изначально этот протокол разрабатывался только для публикации и получения HTML-страниц. Однако благодаря своей гибкости он стал наиболее важным элементом в распределённых информационных системах.

Протокол HTTP основан на механизме «запрос-отклик». Когда клиент (обычно веб-браузер) отправляет запрос веб-серверу, протокол HTTP определяет типы сообщений, используемые для этого взаимодействия. Три основных типа сообщений: GET, POST и PUT (см. рисунок).

GET — это запрос данных клиентом. Клиент (веб-браузер) отправляет сообщение GET веб-серверу, чтобы запросить HTML-страницы. Когда сервер получает запрос GET, он возвращает строку состояния «HTTP/1.1 200 OK» и своё сообщение. Ответ сервера может содержать запрошенный HTML-файл (если он доступен) или сообщение об ошибке, например: «The location of the requested file has changed» («Местоположение запрашиваемого файла изменилось»).

Запросы POST и PUT используются для отправки файлов данных на веб-сервер. Например, если пользователь вводит данные в форму, которая встроена в веб-страницу (например при оформлении заказа), веб-серверу отправляется сообщение POST. Сообщение POST содержит данные, указанные пользователем в форме.

Запрос PUT отправляет на веб-сервер ресурсы или содержимое. Например, если пользователь пытается отправить файл или изображение на веб-сайт, клиент отправляет серверу сообщение PUT с вложенным файлом или изображением.

Несмотря на то, что протокол HTTP достаточно гибкий, он не является безопасным. Сообщения запросов передаются серверу открытым текстом, который может быть перехвачен и прочитан. Аналогичным образом, ответы сервера (обычно это HTML-страницы) также передаются в незашифрованном виде.

Для защищённого двустороннего обмена данными с веб-серверами в Интернете используется протокол HTTPS. HTTPS позволяет использовать аутентификацию и шифрование для защиты данных, пересылаемых между клиентом и сервером. Протокол HTTPS определяет дополнительные правила передачи данных между уровнем приложения и транспортным уровнем. В протоколах HTTPS и HTTP процессы «клиент запрашивает — сервер отвечает» аналогичны, но поток данных шифруется посредством SSL перед началом передачи по сети. HTTPS создает дополнительную нагрузку и требует более длительной обработки на сервере из-за необходимости шифрования и расшифровки трафика.