tgoop.com/devopslib/84
Last Update:
🛠 Что происходит, когда вы вводите curl google.com?
На первый взгляд — просто запрос в браузер через терминал. Но давайте разложим по полочкам, как работает магия под капотом:
1. DNS-резолвинг
   curl сначала узнаёт IP-адрес для google.com. Для этого он обращается к системному резолверу, который опрашивает DNS-сервер (например, 8.8.8.8).
2. Установление TCP-соединения
   Как только IP получен, curl инициирует TCP Handshake (SYN → SYN-ACK → ACK) на порт 80 (или 443 для HTTPS).
3. TLS Handshake (если HTTPS)
   Если вы не указали http://, curl по умолчанию стучится по HTTPS (порт 443). Тогда идёт обмен сертификатами, проверка CA, установка сессионных ключей.
4. Отправка HTTP-запроса
   После установления соединения curl отправляет HTTP-запрос вида:
   GET / HTTP/1.1
   Host: google.com
   User-Agent: curl/7.79.1
   ...
5. Получение ответа
   Google возвращает HTTP-ответ (200 OK, 301 Redirect и т.д.) и тело страницы, если оно есть.
6. Закрытие соединения
   curl может держать соединение открытым или закрыть его в зависимости от заголовков (Connection: keep-alive / close).
🧠 Это базовый сценарий. Но вы можете добавить -v для отладки, --resolve для подмены DNS, --http2 для тестов HTTP/2, и кучу всего ещё.
Используете curl только для запросов? Пора качнуть скилл: тест API, дебаг прокси, TLS-тесты, даже работа с SOCKS5 — это всё в арсенале curl.
Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/84
