Коды ответа HTTP сервера — информация, возвращаемая клиенту, выполнившему HTTP запрос к серверу, доступному в сети. Запрос выполняется к определенному серверу и определенному порту. Если рассматривать веб-сервер, обращение идет по IP адресу на порт 80 или 443 (в зависимости от протокола: http или https).
Коды ответа сервера на HTTP запросы
Запросы бывают различных типов, запросы на получение данных — это обычно GET. HEAD запросы предназначены для того чтобы получить только заголовки.
Проверяются заголовки при помощи консольной утилиты curl или путем отправки запросов предварительно подключившись к серверу с использованием telnet (в конце статьи содержится ссылка на сервис, позволяющий проверять заголовки в браузере)
Проверка ответа сервера — telnet
telnet 123.123.123.123 80
Trying ::1…
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: example.com
Теперь дважды нужно нажать Enter на клавиатуре
В консоль будет выведен HTTP ответ — в нем интерес представляет первая строка, а которой и содержится нужная информация
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Thu, 01 Mar 2018 16:26:59 GMT
Content-Type: text/html
Content-Length: 612
…
Код ответа 200 говорит о том, что ответ нормальный и сервер успешно отдал запрашиваемый клиентом контент.
Проверка ответа сервера — curl
curl лучше всего использовать с ключем -I, в этом случае отдаваться будут только заголовки без содержимого страницы, что и требуется. Запросим домен example.com
curl -I example.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.10.3
Date: Thu, 01 Mar 2018 16:46:19 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://example.com/
Если выполнить запрос к сайту с https ответ будет 200.
curl -I https://example.com
Коды ответа сервера, которые можно встретить чаще всего:
- 200 — запрос успешно обработан
- 301 — постоянный редирект на другой домен
- 302 — некэширующийся редирект (подробнее о различиях)
- 404 — страница не найдена
- 403 — доступ запрещен
- 500 — ошибка сервера, вызванная неверной настройкой (подробнее)
- 502 — ошибка сервера, вызванная отсутствием ответа от бэкенда (подробнее)
Все коды, начинающиеся на 2хх означают, что запрос успешно обработан, на 3хх, что выполняется переадресация, на 4хх — произошла ошибка на стороне клиента, на 5хх — произошла ошибка на стороне сервера.
Проверить код ответа HTTP сервера также можно воспользовавшись специализированным инструментом. Он проверяет кэширование данных, но в выводе присутствует также код ответа.