Curl. Коды ответа сервера и http-заголовки

Львиная доля всех моих работ связана с работами по сео-оптимизации сайтов по требованиям сео-специалистов. Доработать, исправить, добавить, устранить... Очень часто нужно посмотреть ответы сервера по тому или иному url-адресу.

Проверку можно делать разными способами. Самым простым будет воспользоваться онлайн-тестами. Но это не наш вариант:)

В данном посте рассмотрим, какие возможности для данной задачи нам предоставляет curl.

Коды ответа сервера

Для начала рассмотрим самые распространенные коды ответа сервера:

1xx - информационные:

  • 100 - сервер принял первую часть запроса, можно подрожать передачу;
  • 101 - нужно изменить протокол работы на более подходящий;
  • 102 - на обработку запроса уйдет много времени, используется чтобы браузер не разрывал соединение раньше времени;

2хх - операция успешна:

  • 200 - запрос выполнен успешно, отправляется для большинства запрашиваемых страниц;
  • 201 - после выполнения запроса был создан ресурс;
  • 202 - запрос принят, но еще не обработан;
  • 203 - запрос выполнен успешно, но информация для ответа взята из прокси;
  • 204 - запрос обработан, но контента для отображения нет;
  • 205 - попросить пользователя ввести необходимые данные;
  • 206 - запрос обработан, но передана только часть контента;

3xx - перенаправления:

  • 300 - есть несколько страниц для этого запроса, например, на нескольких языках;
  • 301 - страница навсегда перемещена по новому адресу;
  • 302 - документ был временно перемещен;
  • 303 - документ необходимо загрузить по указанному адресу с помощью протокола GET;
  • 304 - документ не изменился с последнего запроса;
  • 305 - нужно использовать прокси;
  • 307 - ресурс временно перемещен на новый адрес.

4хх - ошибка в запросе:

  • 400 - неверный запрос;
  • 401 - необходимо аутентифицироваться;
  • 403 - запрос принят, но у вас нет доступа;
  • 404 - страница не найдена на сервере;
  • 405 - используемый метод нельзя применять на сервере;
  • 408 - время ожидания передачи запроса истекло;
  • 410 - ресурс полностью удален;
  • 411 - нужно указать длину запроса;
  • 413 - запрос слишком длинный;
  • 414 - URI запроса слишком длинная.

5хх - ошибка сервера:

  • 500 - внутренняя ошибка сервера;
  • 501 - нужная функция не поддерживается;
  • 502 - прокси не может соединиться со шлюзом;
  • 503 - сервер не может обрабатывать запросы по техническим причинам;
  • 504 - прокси не дождался ответа от сервера;
  • 505 - версия протокола HTTP не поддерживается.

Основные заголовки, отправляемые сервером

  • Server - имя и версия веб-сервера;
  • Date - дата осуществления запроса;
  • Content-Type - MIME тип передаваемых данных, например, text/html, тут же задается кодировка;
  • Connection - тип соединения, может быть closed - уже закрыто, или keep-alive - открыто для передачи данных;
  • Vary - указывает при каких заголовках веб-сервер будет возвращать разные старины для одного URI;
  • Set-Cookie - сохранить Cookie информацию для страницы;
  • Expires - можно хранить страницу или ресурс в кэше до определенной даты;
  • Cache-Control - настройка времени кэширования страницы браузером, а также разрешения на кэширования;
  • ETag - содержит контрольную сумму для страницы, применимо для проверки кэша;
  • Last-Modified - дата, когда страница последний раз была изменена;

Проверка кода ответа сервера с помощью curl

Чтобы увидеть только код ответа страницы достаточно выполнить такую команду:

curl -I https://pai-bx.com 2>/dev/null | head -n 1 | cut -d$' ' -f2

код ответа страницы

Как видим, сервер вернул 200 статус, что означает, что все ок. Страница доступна для чтения. Если проверить страницу, для которой должны быть настроены редиректы, получим 301-й статус:

Страница доступна для чтения.

Проверка http-заголовков с помощью curl

Чтобы вывести заголовки страницы необходимо запустить curl с опцией -I:

curl -I https://pai-bx.com

вывести заголовки страницы

Проверка IF-MODIFIED-SINCE

Чтобы увидеть работает ли данный заголовок, для начала выполняем обычный запрос заголовков сервера. Далее, повторяем отправку запроса, но уже с заголовком If-Modified-Since и датой:

IF-MODIFIED-SINCE

Видим, что второй запрос возвращает 304-й статус ответа, что означает, что с указанного времени страница не менялась и может быть взята из кеша браузера.

Таким образом, с помощью curl можно увидеть код ответа сервера и отдаваемые сервером заголовки.

Количество показов: 10642
09.05.2019

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.