Для передачи файлов в интернете можно использовать протокол FTP (File Transfer Protocol). Это клиент-серверный протокол, в котором команды и данные передаются по двум разным каналам, управляющему каналу и каналу данных соответственно.
Рассмотрим некоторые команды протокола FTP.
По команде RETR Path сервер по каналу данных отправляет клиенту файл по указанному пути, после чего клиент должен сохранить файл на устройство.
По команде MLSD Path сервер по каналу данных отправляет клиенту информацию о содержимом указанного каталога (или информацию о файле, если по пути лежит файл). Информация о каждом элементе каталога возвращается в виде набора фактов. Каждый факт представляется в виде пары ключ-значение в формате Name=Value;.
Ниже представлены некоторые стандартные факты:
- Create — время создания в формате YYYYMMDDhhmmss (например, время создания 05 ноября 1995 10:17:54 будет записано как 19951105101754);
- Modify — время последнего изменения в формате YYYYMMDDhhmmss;
- Type — тип элемента каталога:
- file — обычный файл;
- dir — каталог;
- cdir — текущий каталог;
- pdir — родительский каталог;
- Size — размер файла в байтах, указывается только для файлов.
При этом не все факты должны присутствовать в ответе команды.
После набора фактов указывается название файла или папки, отделённое ровно одним пробелом. Все элементы каталога описываются на отдельных строках, при этом для переноса строки используется два символа (CR LF). Перенос строки имеется также после последней строки вывода команды.
Команда возвращает одну строку с типом элемента каталога, равным cdir, в таком случае название элемента каталога равно полному пути к каталогу. Команда возвращает одну строку с типом элемента каталога, равным pdir, и тогда название элемента каталога указывается как две точки (..).
Пример выполнения команды MLSD tmp:
Type=cdir;Modify=19981107085215; /tmp
Type=pdir;Modify=19990112030508; ..
Type=file;Size=25730;Modify=19940728095854; capmux.tar.z
Type=file;Size=1830;Modify=19940916055648; hatch.c
Type=file;Size=25624;Modify=19951003165342; MacIP-02.txt
Type=file;Size=2154;Modify=19950501105033; uar.netbsd.patch
Type=file;Size=54757;Modify=19951105101754; iptnnladev.1.0.sit.hqx
Type=file;Size=226546;Modify=19970515023901; melbcs.tif
Type=file;Size=12927;Modify=19961025135602; tardis.1.6.sit.hqx
Type=file;Size=17867;Modify=19961025135602; timelord.1.4.sit.hqx
Type=file;Size=224907;Modify=19980615100045; uar.1.2.3.sit.hqx
Type=file;Size=1024990;Modify=19980130010322; cap60.pl198.tar.gz
Миша нашёл в интернете общедоступный FTP-сервер и начал исследовать его содержимое. Ниже представлено содержимое каталога /Games этого сервера:
| Полный путь |
Размер (в байтах) |
Тип |
Время создания |
| / |
- |
Каталог |
12 января 2012 07:47:00 |
| /Games |
- |
Каталог |
10 марта 2014 10:55:00 |
| /Games/0ad_0.0.22_amd64.appimage |
1 030 321 584 |
Файл |
29 мая 2018 14:00:00 |
| /Games/battle-for-wesnoth-1.18.3-win.zip |
506 219 599 |
Файл |
28 октября 2024 20:45:00 |
| /Games/endless-sky-v0.10.10.dmg |
282 303 434 |
Файл |
26 октября 2024 22:38:00 |
| /Games/freeciv-gtk3.22-3.1.4-x86_64.appimage |
155 636 928 |
Файл |
03 января 2025 00:33:00 |
| /Games/openttd_1.10.3_amd64.appimage |
69 316 648 |
Файл |
27 января 2021 14:41:00 |
| /Games/super-tux-kart_1.2_amd64.appimage |
594 681 896 |
Файл |
22 февраля 2021 14:48:00 |
| /Games/super-tux-v0.6.3-win64.msi |
178 823 737 |
Файл |
23 декабря 2021 01:25:00 |
| /Games/unknown-horizons-2019.1.214-SetupVC15-x86.exe |
192 179 770 |
Файл |
24 февраля 2019 16:23:00 |
Миша выполнил команду MLSD /Games, после чего выполнил несколько команд RETR. Известно, что всего по каналу данных было передано 575 536 968 байт и что команда MLSD на этом сервере возвращает факты Size, Type и Create. Выберите файлы, которые были получены с помощью команды RETR. Если есть несколько вариантов того, какие файлы могли быть получены, выберите тот, в котором меньше всего файлов.
Варианты ответа:
- 0ad_0.0.22_amd64.appimage
- battle-for-wesnoth-1.18.3-win.zip
- endless-sky-v0.10.10.dmg
- freeciv-gtk3.22-3.1.4-x86_64.appimage
- openttd_1.10.3_amd64.appimage
- super-tux-kart_1.2_amd64.appimage
- super-tux-v0.6.3-win64.msi
- unknown-horizons-2019.1.214-Setup-VC15-x86.exe
- Такого набора файлов не существует