Загрузить файлы в «/»

This commit is contained in:
2026-05-10 14:00:37 +00:00
commit d0548569b0
3 changed files with 494 additions and 0 deletions
+138
View File
@@ -0,0 +1,138 @@
### 🧪 Практикум с Telnet: Шаг за шагом в мир протоколов
Эти упражнения идеально дополнят вашу лекцию о верхних уровнях модели OSI, предоставляя студентам бесценный опыт реального взаимодействия с серверами.
#### ⚙️ Подготовка перед началом
Для выполнения упражнений обязательно следует установить telnet-клиент. На Linux и macOS он часто доступен по умолчанию, а на Windows его можно активировать через «Включение или отключение компонентов Windows» или установить удобную альтернативу — утилиту `netcat` (`nc`). Также стоит предупредить студентов, что многие современные серверы могут не отвечать на текстовые команды из-за требований безопасности, поэтому для всех упражнений лучше использовать специальные тестовые хосты.
### A. 🎢 Путешествие глубже в мир HTTP
Эти упражнения длятся от 5 до 15 минут и направлены на углублённое понимание прикладного протокола HTTP.
#### **1. Отправка POST-запроса и анализ ответа**
* **Задача:** Студенты должны вручную отправить на сервер данные формы — например, простой логин и пароль.
* **Команды:**
```bash
telnet httpbin.org 80
```
```http
POST /post HTTP/1.1
Host: httpbin.org
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
name=Ivan&city=Moscow
```
* **Объяснение:** Здесь студенты видят метод `POST` вместо `GET`, учатся правильно рассчитывать заголовок `Content-Length` (что критически важно для сервера) и наблюдают, как сервер возвращает отправленные данные обратно в теле ответа.
#### **2. Манипуляции с заголовками**
* **Задача:** С помощью команды `HEAD` получить только служебную информацию о ресурсе и изменить заголовок `User-Agent`, чтобы «выдать» себя за другой браузер или поискового робота.
* **Команды:**
```bash
telnet example.com 80
```
```http
HEAD / HTTP/1.1
Host: example.com
User-Agent: MyCustomBot/1.0
```
* **Объяснение:** Это отличный способ показать, что вся информация для сервера передаётся в открытую. Студенты увидят, что ответ на `HEAD` не содержит тела, а изменение `User-Agent` демонстрирует, как легко подделать любой HTTP-клиент.
#### **3. Исследование кодов ответа**
* **Задача:** Студенты должны намеренно вызвать разные коды ошибок, чтобы эмпирически изучить их значение.
* **Команды:**
```bash
telnet example.com 80
```
```http
GET /non-existent-page-that-404 HTTP/1.1
Host: example.com
```
* **Объяснение:** В ответ на запрос несуществующей страницы, сервер вернёт ошибку `404 Not Found`. Если студенты попробуют отправить некорректный запрос, например: `GIBBERISH / HTTP/1.1`, то сервер ответит `400 Bad Request`. Это закрепляет понимание семантики статус-кодов.
#### **4. Изучение альтернативных протоколов: работа с FTP**
* **Задача:** Подключиться к публичному FTP-серверу и вручную навигироваться по его файловой системе. Это упражнение может занять 10-15 минут.
* **Команды:**
```bash
telnet ftp.gnu.org 21
```
```text
USER anonymous
PASS guest@
LIST
CWD /gnu
PWD
QUIT
```
* **Объяснение:** FTP (`File Transfer Protocol`) — ещё один классический протокол с текстовыми командами. Это упражнение показывает главную особенность FTP: он использует два TCP-соединения — порт 21 для команд и порт 20 для данных. Студенты воочию увидят, как работают команды `USER`, `PASS`, `LIST` (список файлов) и `CWD` (смена директории).
### B. 💌 Электронная почта на ладони (SMTP и POP3)
Эти два упражнения служат «мостиком» между протоколами и занимают порядка 20–25 минут.
#### **5. Ручная отправка письма (SMTP)**
* **Задача:** Вручную, шаг за шагом, отправить настоящее электронное письмо. Для этого лучше использовать тестовый SMTP-сервер, например, `sandbox.smtp.mailtrap.io`, который бесплатно предоставляет тестовое окружение.
* **Команды:**
```bash
telnet sandbox.smtp.mailtrap.io 25
```
```text
EHLO myclient.local
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
Subject: Telnet is awesome!
Hello from the depths of the OSI model!
.
QUIT
```
* **Объяснение:** Это, пожалуй, самое яркое упражнение. Студенты не просто читают про протокол `SMTP` (`Simple Mail Transfer Protocol`), а сами выступают в роли почтового клиента. Особый акцент стоит сделать на команде `DATA` и точке в отдельной строке — это маркер конца письма.
#### **6. Забор почты из ящика (POP3)**
* **Задача:** «Забрать» только что отправленное письмо с сервера. Для этого потребуется любой публичный POP3-сервер или можно использовать тот же Mailtrap.
* **Команды:**
```bash
telnet pop3.example.com 110
```
```text
USER your_username
PASS your_password
STAT
LIST
RETR 1
DELE 1
QUIT
```
* **Объяснение:** POP3 (`Post Office Protocol`) — это «протокол почтового отделения». Команда `RETR 1` (retrieve) скачивает первое письмо, а `DELE 1` помечает его на удаление. Это идеально демонстрирует стандартную модель работы POP3, где письма забираются с сервера на локальный компьютер.
#### 💡 **Межпротокольные связи**
Завершая этот блок, самое время подчеркнуть один важный момент, который великолепно демонстрирует красоту сетевого взаимодействия: чтобы получить письмо на одном компьютере, мы используем `SMTP` (для отправки) и `POP3`/`IMAP` (для получения) — два совершенно разных протокола прикладного уровня. Они работают независимо друг от друга, и каждый решает свою задачу, опираясь на один и тот же транспортный протокол `TCP`. Это нагляднейший пример того, как уровни модели OSI (в данном случае прикладной) взаимодействуют и разделяют ответственность.
### C. 🚀 Автоматизация и Вызов для Продвинутых
Это упражнение повышенной сложности на 15–20 минут для самых сильных студентов.
#### **7. Автоматизация с Netcat и сравнение с HTTPS**
* **Задача:** С помощью скрипта написать простейший веб-сервер на `netcat`, а затем сравнить трафик `HTTP` и `HTTPS` (порт 443) в `Wireshark`.
* **Пример скрипта сервера (server.sh):**
```bash
#!/bin/bash
while true; do
echo -e "HTTP/1.1 200 OK\n\n Hello, you reached my custom server!" | nc -l -p 8080 -q 1
done
```
Надеюсь, этот набор инструментов и идей поможет сделать вашу лекцию по-настоящему увлекательной и запоминающейся. Если захотите обсудить детали или адаптировать упражнения под конкретную аудиторию, я всегда рядом.