Linux & Tools
April 16

Использование CURL

Применение CURL для оценки состояния сервера.

Ключи для CURL

  • curl -I для получения только заголовков ответа.
  • curl -IL для проверки редиректов.
  • curl -v для подробной информации о запросах и ответах.
  • curl -w для замера времени отклика.
  • curl -vI для получения данных о сертификате SSL.

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

Основные способы использования curl для получения информации о статусе сервера:


1. Проверка доступности сервера (HTTP статус-код)

Чтобы проверить статус вашего сервера и узнать, какой HTTP статус-код вернул сервер (например, 200 OK, 404 Not Found, 500 Internal Server Error), используйте следующую команду:

curl -I http://fit.whf.bz
  • -I (или --head) отправляет только HTTP-заголовки, не загружая весь контент страницы.
  • Это даст вам краткую информацию, например: HTTP/1.1 200 OK Date: Mon, 15 Apr 2025 00:00:00 GMT Server: Apache X-Powered-By: PHP/7.4.3 Content-Type: text/html; charset=UTF-8 Это позволяет вам увидеть статус ответа от сервера (например, 200 OK), тип содержимого, сервер и другие метаданные.

2. Проверка редиректа (следование редиректам)

Если ваш сайт перенаправляет с HTTP на HTTPS, например, вы можете увидеть, что происходит с помощью опции -L (следовать за редиректами):

curl -IL http://fit.whf.bz
  • -L позволяет curl следовать за редиректами.
  • -I по-прежнему выводит только заголовки.

Это позволит увидеть, если сайт редиректит на https:// и какие ответы сервер отправляет.

Пример вывода:

HTTP/1.1 301 Moved Permanently
Location: https://fit.whf.bz/
HTTP/2 200 

3. Проверка заголовков HTTP с подробной информацией о запросе

Если вы хотите увидеть больше подробностей, например, о том, как сервер обрабатывает ваш запрос, можно использовать команду с -v (verbose), чтобы получить подробную информацию о запросе и ответе:

curl -v http://fit.whf.bz

Пример вывода:

*   Trying 123.45.67.89...
* Connected to fit.whf.bz (123.45.67.89) port 80 (#0)
> GET / HTTP/1.1
> Host: fit.whf.bz
> User-Agent: curl/7.68.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Mon, 15 Apr 2025 00:00:00 GMT
< Server: Apache
< X-Powered-By: PHP/7.4.3
< Content-Type: text/html; charset=UTF-8
< 
...

Здесь вы видите всю информацию о запросе (например, что ваш запрос был на порт 80), а также заголовки ответа от сервера.


4. Проверка времени отклика сервера

Если вы хотите узнать, сколько времени занимает соединение с сервером, вы можете использовать опцию -w с форматированием:

curl -w "@curl-format.txt" -o /dev/null -s http://fit.whf.bz

Создайте файл curl-format.txt с таким содержимым:

time_namelookup:  %{time_namelookup}\n
time_connect:  %{time_connect}\n
time_appconnect:  %{time_appconnect}\n
time_pretransfer:  %{time_pretransfer}\n
time_redirect:  %{time_redirect}\n
time_starttransfer:  %{time_starttransfer}\n
------------------------
time_total:  %{time_total}\n

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


5. Проверка сертификата SSL (если сайт использует HTTPS)

Если сайт работает через HTTPS, вы можете использовать curl для получения информации о сертификате SSL:

curl -vI https://fit.whf.bz

В выводе будет отображена информация о сертификате, включая его дату истечения и информацию о шифровании.

Пример:

* Server certificate:
*  subject: CN=fit.whf.bz
*  start date: Jan  1 00:00:00 2025 GMT
*  expire date: Jan  1 23:59:59 2026 GMT
*  subjectAltName: fit.whf.bz
*  issuer: C=US; O=Let's Encrypt; CN=R3

Резюме:

  • curl -I для получения только заголовков ответа.
  • curl -IL для проверки редиректов.
  • curl -v для подробной информации о запросах и ответах.
  • curl -w для замера времени отклика.
  • curl -vI для получения данных о сертификате SSL.

Эти команды позволяют быстро и эффективно проверять статус вашего сервера и получать необходимую информацию о его работе. Если у вас будут дополнительные вопросы, не стесняйтесь спрашивать!