Перейти к содержимому

curl -I: как быстро проверить сайт из терминала

curl -I — одна из самых простых и полезных команд для проверки сайта. Она не скачивает всю страницу как браузер, а просит сервер показать HTTP-заголовки. Для диагностики этого часто достаточно, чтобы за несколько секунд увидеть код…

curl -I — одна из самых простых и полезных команд для проверки сайта. Она не скачивает всю страницу как браузер, а просит сервер показать HTTP-заголовки.

Для диагностики этого часто достаточно, чтобы за несколько секунд увидеть код ответа, redirect, тип сервера, кеширование и другие детали.

Самая простая команда

curl -I https://example.com/

Пример результата

HTTP/2 200
content-type: text/html; charset=utf-8
cache-control: no-cache
server: nginx

Первая строка — самое важное

Например:

HTTP/2 200

или:

HTTP/2 301

или:

HTTP/2 502

Что делает -I

curl выполняет HEAD-запрос, то есть просит заголовки без обычного тела страницы.

HEAD поддерживается не везде идеально

Некоторые приложения обрабатывают HEAD иначе или вообще неправильно. Поэтому при странном результате полезно сравнить его с обычным GET.

Проверка обычным GET без вывода страницы

curl -s -o /dev/null -D - https://example.com/

Redirect

Если ответ:

HTTP/2 301
location: https://www.example.com/

сервер говорит перейти на другой адрес.

Следовать по redirect

curl -IL https://example.com/

Флаг -L разрешает переходить по Location.

Только HTTP-код

curl -s -o /dev/null -w "%{http_code}\n" \
https://example.com/

Только конечный URL

curl -Ls -o /dev/null \
-w "%{url_effective}\n" \
https://example.com/

Измерить время

curl -s -o /dev/null \
-w "connect=%{time_connect} total=%{time_total}\n" \
https://example.com/

Verbose-режим

curl -v https://example.com/

Он показывает значительно больше:

  • IP;
  • подключение;
  • TLS;
  • HTTP-запрос;
  • HTTP-ответ.

Не путайте заголовки запроса и ответа

В verbose-режиме curl помечает направление данных.

Проверить конкретный IP

curl --resolve example.com:443:203.0.113.25 \
-I https://example.com/

Незаменимо при миграции.

Изменить User-Agent

curl -A "Mozilla/5.0" -I https://example.com/

Иногда сервер по-разному отвечает различным клиентам.

Добавить свой заголовок

curl -H "X-Test: 1" https://example.com/

Проверить HTTP

curl -I http://example.com/

Так удобно увидеть redirect HTTP → HTTPS.

Почему curl может работать, а браузер нет

У браузера есть:

  • кеш;
  • cookies;
  • DoH;
  • JavaScript;
  • расширения;
  • свои политики безопасности.

curl даёт более «чистый» технический запрос.

Почему браузер может работать, а curl нет

Сайт способен требовать cookies, JavaScript, специальные заголовки или блокировать нетипичные клиенты.

NexIP и curl

NexIP удобен, когда нужно выполнить похожую проверку из внешней точки и получить результат в понятном интерфейсе, а curl хорош непосредственно в терминале.

FAQ

curl -I скачивает страницу?

Обычно нет, он запрашивает только заголовки через HEAD.

Как увидеть redirect целиком?

curl -IL URL

Как получить только код?

curl -s -o /dev/null -w "%{http_code}\n" URL

Диагностика NexIP

Продолжите реальной проверкой

Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.

Открыть диагностику

Читайте дальше

Материалы по теме

HTTP и сайты

HTTP-коды ответа: что означают 200, 301, 404, 500 и другие

Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…

Читать
HTTP и сайты

Как открывается сайт: DNS → TCP → TLS → HTTP

Когда человек вводит адрес сайта и нажимает Enter, кажется, будто браузер просто «подключился к сайту». На самом деле за доли секунды происходит целая цепочка: DNS, соединение с сервером, TLS и только потом HTTP. Если понимать эту…

Читать
Вернуться в базу знаний