Коды статусу HTTP — гэта трохзначныя лічбы ў адказе сервера, якія паведамляюць кліенту аб выніку запыту. Першая лічба вызначае клас адказу.
Код 301 Moved Permanently паведамляе пошукавым сістэмам, што старонка назаўжды перамешчана на новы адрас. Калі вы на 100% упэўнены, што старонка не вернецца на стары URL, выкарыстоўвайце гэты метад. Код 302 Found паказвае на часовае перанакіраванне; ён кажа пошукавым сістэмам, што старонка можа вярнуцца, і стары URL не варта замяняць у індэксе. Выкарыстоўвайце 301 для пастаянных змен (міграцыя сайта, змена структуры URL) і 302 толькі для часовых выпадкаў або A/B тэсціравання.
Калі старонка вяртае 404, пошукавыя сістэмы могуць усё яшчэ трымаць яе ў індэксе некаторы час і не выдаляць яе адразу. Гэта нармальныя паводзіны. Калі вы хочаце паскорыць выдаленне, выкарыстоўвайце код статусу 410 Gone — ён выразна паказвае, што старонка больш не існуе. Калі вам трэба захаваць старонку, але выправіць памылку, ліквідуйце 404 (праверце URL і выпраўце правілы .htaccess) і вярніце статус 200 OK.
Памылка 502 паказвае на праблему ў сувязі паміж nginx і бэкэнд-працэсарам (php-fpm або uwsgi). Спачатку праверце, ці запушчаны php-fpm і ці мае ён дастаткова свабодных працоўных працэсаў. Затым наладзьце параметры php-fpm, павялічце параметр pm.max_children і павялічце тайм-аўты nginx (proxy_read_timeout, fastcgi_read_timeout). Калі праблема застаецца, праглядзіце серверныя логі для больш падрабязнай інфармацыі аб памылцы і разгледзьце магчымасць часовага пераходу на больш простую канфігурацыю.
Поўны даведнік HTTP-статусаў з апісаннямі.
| 100 | Continue | Сервер получил заголовки запроса, клиент может продолжать отправку тела |
| 101 | Switching Protocols | Сервер согласен сменить протокол (напр. HTTP → WebSocket) |
| 102 | Processing | Запрос принят, обработка продолжается (WebDAV) |
| 103 | Early Hints | Сервер отправляет предварительные заголовки (Link) до финального ответа |
| 200 | OK | Запрос выполнен успешно — стандартный ответ для GET/POST |
| 201 | Created | Ресурс создан — типично для POST при создании объекта |
| 202 | Accepted | Запрос принят, но обработка ещё не завершена |
| 203 | Non-Authoritative Information | Метаинформация получена не из оригинального источника |
| 204 | No Content | Успех, тело ответа отсутствует — DELETE, PUT без возврата данных |
| 205 | Reset Content | Клиент должен сбросить представление документа |
| 206 | Partial Content | Частичный контент — ответ на Range-запрос |
| 207 | Multi-Status | Несколько статусов в одном ответе (WebDAV) |
| 208 | Already Reported | Элемент уже перечислен (WebDAV) |
| 226 | IM Used | Delta encoding применена к ответу (RFC 3229) |
| 300 | Multiple Choices | Несколько вариантов ресурса, клиент выбирает |
| 301 | Moved Permanently | Ресурс перемещён навсегда — новый URL в Location |
| 302 | Found | Временное перенаправление — метод может измениться на GET |
| 303 | See Other | Перенаправление на другой ресурс методом GET |
| 304 | Not Modified | Ресурс не изменился, клиент использует кеш |
| 307 | Temporary Redirect | Временный редирект — метод сохраняется |
| 308 | Permanent Redirect | Постоянный редирект — метод сохраняется (как 301, но без смены метода) |
| 400 | Bad Request | Некорректный запрос — синтаксис, неверные параметры |
| 401 | Unauthorized | Требуется аутентификация — заголовок WWW-Authenticate |
| 402 | Payment Required | Зарезервировано для платных сервисов |
| 403 | Forbidden | Доступ запрещён — аутентификация не поможет |
| 404 | Not Found | Ресурс не найден |
| 405 | Method Not Allowed | HTTP-метод не разрешён для данного ресурса |
| 406 | Not Acceptable | Сервер не может вернуть данные в запрошенном формате |
| 407 | Proxy Authentication Required | Нужна аутентификация через прокси |
| 408 | Request Timeout | Сервер ждал запроса слишком долго |
| 409 | Conflict | Конфликт состояния — дублирование, несовместимые изменения |
| 410 | Gone | Ресурс удалён навсегда (в отличие от 404, это точно известно) |
| 411 | Length Required | Нужен заголовок Content-Length |
| 412 | Precondition Failed | Не выполнено условие If-Match / If-None-Match |
| 413 | Content Too Large | Тело запроса слишком большое |
| 414 | URI Too Long | URL слишком длинный |
| 415 | Unsupported Media Type | Content-Type не поддерживается сервером |
| 416 | Range Not Satisfiable | Запрошенный диапазон недоступен |
| 417 | Expectation Failed | Заголовок Expect не может быть выполнен |
| 418 | I'm a Teapot | RFC 2324 — чайник не может заварить кофе (шутка) |
| 421 | Misdirected Request | Запрос направлен на сервер, который не может дать ответ |
| 422 | Unprocessable Content | Синтаксис верен, но семантика некорректна (валидация) |
| 423 | Locked | Ресурс заблокирован (WebDAV) |
| 424 | Failed Dependency | Ошибка из-за отказа предыдущего запроса (WebDAV) |
| 425 | Too Early | Запрос отправлен слишком рано (TLS early data) |
| 426 | Upgrade Required | Клиент должен переключиться на другой протокол |
| 428 | Precondition Required | Требуется условный запрос (If-Match) |
| 429 | Too Many Requests | Превышен лимит запросов (rate limiting) |
| 431 | Request Header Fields Too Large | Заголовки запроса слишком большие |
| 451 | Unavailable For Legal Reasons | Ресурс заблокирован по юридическим причинам |
| 500 | Internal Server Error | Общая ошибка сервера — необработанное исключение, баг |
| 501 | Not Implemented | Метод не реализован на сервере |
| 502 | Bad Gateway | Некорректный ответ от вышестоящего сервера (прокси/балансировщик) |
| 503 | Service Unavailable | Сервер перегружен или на обслуживании |
| 504 | Gateway Timeout | Вышестоящий сервер не ответил вовремя |
| 505 | HTTP Version Not Supported | Версия HTTP не поддерживается |
| 506 | Variant Also Negotiates | Циклическая ссылка при content negotiation |
| 507 | Insufficient Storage | Недостаточно места для выполнения запроса (WebDAV) |
| 508 | Loop Detected | Обнаружена бесконечная петля (WebDAV) |
| 510 | Not Extended | Требуется расширение запроса |
| 511 | Network Authentication Required | Требуется аутентификация в сети (captive portal) |