Протокол HTTP (HyperText Transfer Protocol) разрабатывался специально для Интернета: для получения и передачи данных по Интернету. Он работает по технологии «клиент – сервер», которая подразумевает, что есть клиенты, запрашивающие информацию (например, просмотр содержимого веб-страницы), и серверная часть, которая обрабатывает эти запросы и отсылает ответ.
HTTP работает на уровне приложений. Это означает, что данный протокол должен пользоваться услугами транспортного протокола, в качестве которого по умолчанию выступает протокол TCP.
Первая версия протокола HTTP была разработана еще в начале 90-х годов прошлого века и на то время полностью удовлетворяла пользователей своими возможностями. Но со временем, когда в Интернет пришла графика и динамичные изображения, возможностей протокола стало не хватать и он постепенно начал изменяться.
В своей работе протокол использует понятие URI (Uniform Resource Identifier) – уникального идентификатора ресурса, в качестве которого обычно выступает адрес веб-страницы, файла или любого другого логического объекта. При этом URI поддерживает работу с параметрами, что позволяет расширять функциональность протокола. Так, используя параметры, можно указать, в каком формате и кодировке вы хотите получить ответ от сервера. Это в свою очередь позволяет передавать с помощью HTTP не только текстовые документы, но и любые двоичные данные.
Основным недостатком протокола HTTP является избыточный объем текстовой информации, необходимой для того, чтобы клиент мог правильно отобразить полученный от сервера ответ. При большом объеме содержимого веб-страницы это может создавать излишне большой трафик, что ухудшает восприятие информации. Кроме того, протокол полностью лишен каких-либо механизмов сохранения состояния, что делает невозможной навигацию по веб-страницам посредством одного лишь HTTP-протокола. По этой причине вместе с HTTP-протоколом используются сторонние протоколы либо пользователю необходимо работать с браузером, обрабатывающим HTTP-запросы.
FTP
Протокол FTP (File Transfer Protocol) является «родным братом» протокола HTTP, только, в отличие от последнего, он работает не с текстовыми или двоичными данными, а с файлами.
Этот протокол – один из старейших: он появился еще в начале 70-х годов прошлого века. Как и HTTP, он работает на прикладном уровне и в качестве транспортного протокола использует TCP-протокол. Его основная задача – передача файлов с/на FTP-сервер.
FTP-протокол представляет собой набор команд, которые описывают правила подключения и обмена данными. При этом команды и непосредственно данные передаются с использованием различных портов. В качестве стандартных портов используются порты 21 и 20: первый – для передачи данных, второй – передачи команд. Кроме того, порты могут быть динамическими.
Размер файлов, передаваемых с помощью FTP-протокола, не лимитируется. Предусмотрен также механизм докачки файла,