Skip to content

Лекція 35. URL, HTTP і веб

Рівень 6: Мережевий слідопит

Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.

Що ми сьогодні розкриємо

Section titled “Що ми сьогодні розкриємо”
  • розібрати URL на частини
  • зрозуміти модель HTTP request/response
  • побачити сирий HTTP-вміст через curl

Зв’язок з попередніми лекціями

Section titled “Зв’язок з попередніми лекціями”

У цій лекції ми використаємо знання про DNS із лекції 34, щоб розібрати будову URL та побачити HTTP у дії.

URL — точна адреса ресурсу

Section titled “URL — точна адреса ресурсу”

Розглянь:

https://example.com:443/docs/page?mode=small

Спрощено:

  • https — схема/протокол доступу;
  • example.com — hostname;
  • 443 — порт, часто не пишеться, бо для HTTPS він типовий;
  • /docs/page — path;
  • ?mode=small — query string.

Не кожен URL містить усі частини явно.

graph LR
    A["https://example.com:443/docs/page?mode=small"]
    A --> B["https
Схема/
протокол"]
    A --> C["example.com
Hostname"]
    A --> D[":443
Порт"]
    A --> E["/docs/page
Шлях"]
    A --> F["?mode=small
Параметри"]

    style B fill:#e1f5fe
    style C fill:#fff3e0
    style D fill:#f3e5f5
    style E fill:#e8f5e9
    style F fill:#fce4ec

HTTP — правила запитів і відповідей

Section titled “HTTP — правила запитів і відповідей”

Браузер як клієнт надсилає HTTP-запит: наприклад «дай ресурс /». Сервер повертає відповідь: статус, заголовки та, можливо, тіло сторінки.

Статуси мають коди: 200 часто означає успіх, 404 — ресурс не знайдено. Є багато інших.

sequenceDiagram
    participant B as Браузер 🌐
    participant S as Сервер 🖥️

    B->>S: GET /index.html
    Note right of B: Headers: Host, Accept...

    S-->>B: 200 OK
    Note left of S: Headers: Content-Type...
    Note left of S: Body: HTML код сторінки

    B->>S: GET /style.css
    S-->>B: 200 OK

    B->>S: GET /photo.jpg
    S-->>B: 404 Not Found

HTTPS = HTTP через захищене з’єднання

Section titled “HTTPS = HTTP через захищене з’єднання”

HTTPS додає TLS-захист каналу: шифрування, перевірку справжності сервера за сертифікатом та цілісність переданих даних. Це значно більше, ніж «буква S».

HTTPS не гарантує, що сам сайт добрий або чесний; воно захищає транспортне з’єднання з тим сайтом, чию адресу ти відкрив.

curl https://example.com отримує тіло відповіді без графічного браузера.

curl -I https://example.com просить показати лише заголовки відповіді в типовому сценарії HEAD.

URL http://localhost:8000/index.html вказує на локальний хост, порт 8000 і шлях /index.html. Саме такий URL ми використаємо для власного сервера.

Linux-лабораторія: браузер без вікна

Section titled “Linux-лабораторія: браузер без вікна”
Terminal window
curl https://example.com
curl -I https://example.com

За бажанням і за наявності мережі:

Terminal window
curl wttr.in/Kyiv

Останній сервіс зовнішній і може змінюватися або бути недоступним; головний навчальний приклад — example.com, спеціально створений для документаційних прикладів.

Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.

  1. розбери URL https://example.com:443/docs/page?mode=small на частини
  2. виконай curl і curl -I для example.com
  3. знайди HTTP status у заголовках
  4. поясни модель клієнт → request → server → response
  5. поясни, чого HTTPS не гарантує про зміст сайту
  • Що таке URL?
  • Що таке HTTP request?
  • Що таке HTTP response?
  • Що часто означає статус 404?
  • Яку додаткову ідею дає HTTPS?
  • URL — адреса ресурсу з інформацією про протокол, хост, порт, шлях і параметри.
  • HTTP (HyperText Transfer Protocol) — правила для запитів і відповідей у вебі.
  • HTTPS — HTTP + захист каналу (шифрування та сертифікати).
  • Запит (request) — те, що клієнт надсилає серверу (наприклад «дай сторінку»).
  • Відповідь (response) — те, що сервер повертає: статус, заголовки, тіло.
  • HTTP-статус — код результату (наприклад 200 — ок, 404 — не знайдено).
  • curl — «браузер без вікна»: запитує ресурси через термінал.

Чек-лист перед наступною лекцією

Section titled “Чек-лист перед наступною лекцією”
  • Чи можеш ти пояснити структуру URL та різницю між HTTP і HTTPS?
  • Чи вмієш ти використовувати curl для надсилання запитів?
  • Чи розумієш ти, як статус-коди HTTP повідомляють про результат запиту?

Що потрібно винести з лекції

Section titled “Що потрібно винести з лекції”
  • URL описує місце й спосіб доступу до ресурсу
  • HTTP організований навколо запитів і відповідей
  • curl дозволяє досліджувати веб без графічного браузера

Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.