Complete reference of HTTP response status codes.
| 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) |
HTTP status codes are three-digit numbers in the server response that tell the client about the result of the request. The first digit defines the response class.
A 301 Moved Permanently tells search engines that the page has permanently moved to a new location. If you are 100% sure the page will not return to the old URL, use this method. A 302 Found indicates a temporary redirect; it tells search engines the page may return, and the old URL should not be replaced in the index. Use 301 for permanent changes (site migration, URL restructuring) and 302 only for temporary cases or A/B testing.
If a page returns a 404, search engines may still keep it in the index for some time and not remove it immediately. This is normal behavior. If you want to speed up removal, use a 410 Gone status code â it clearly signals that the page no longer exists. If you need to keep the page but fix the error, eliminate the 404 (check the URL and correct the .htaccess rules) and return a 200 OK status.
A 502 error indicates a problem in the connection between nginx and the backend processor (php-fpm or uwsgi). First, check if php-fpm is running and has enough free worker processes. Then adjust the php-fpm settings, increase the pm.max_children parameter, and increase nginx timeouts (proxy_read_timeout, fastcgi_read_timeout). If the problem persists, review the server logs for more detailed error information, and consider temporarily switching to a simpler configuration.