426 Upgrade Required

4 мин чтения
Обновлено 24 июля 2026

Код 426 Upgrade Required означает, что сервер отказывается обрабатывать запрос по текущему протоколу и требует от клиента перейти на другой — например, на WebSocket или более новую версию TLS. Сервер при этом работает: он принял запрос, но сознательно ответил отказом. Для владельца сайта это почти всегда признак несовпадения протоколов между клиентом и сервером, а не сбоя приложения.

Что означает код 426

426 — клиентская ошибка из группы 4xx, описанная в стандарте RFC 9110. Появился код в RFC 2817 — расширении HTTP/1.1, которое позволяло перейти на защищённое TLS-соединение внутри уже открытого. Смысл ответа: «по этому протоколу не отвечу — переключитесь на другой». Какой именно протокол нужен, сервер обязан назвать в заголовке Upgrade, например Upgrade: websocket или Upgrade: TLS/1.2.

Ближайший смежный код — 505 HTTP Version Not Supported: при 505 сервер не поддерживает версию HTTP из запроса, при 426 — поддерживает, но требует другой или более новый протокол. От 415 Unsupported Media Type код отличается предметом отказа: 415 — серверу не подходит формат передаваемых данных, 426 — сам протокол соединения. Не путайте 426 и с информационным кодом 101 Switching Protocols: 101 — согласие сервера сменить протокол, 426 — требование это сделать. Позиция кода среди остальных — в полном списке кодов ответа HTTP.

Считает ли Tracker.ru 426 падением

Да. Успешной Tracker.ru считает только проверку с кодом 2xx. Ответ 426 помечает сайт недоступным, тип ошибки — «HTTP-ошибка», и вы получаете уведомление на email, в Telegram или по webhook. Проверки идут из нескольких регионов, но для 426 результат обычно совпадает во всех: причина в настройках сервера, а не в географии. Пока сервер отвечает кодом 426, время недоступности накапливается в статистике аптайма.

Типичные причины

  • На мониторинг поставлен WebSocket-эндпоинт. Многие WebSocket-серверы — например, популярная Node.js-библиотека ws — отвечают 426 на обычный HTTP-запрос без заголовка Upgrade: websocket. Проверка мониторинга — обычный HTTP-запрос, поэтому такой адрес будет возвращать ошибку постоянно.
  • Обратный прокси теряет заголовки Upgrade. В nginx для проксирования WebSocket нужны директивы proxy_set_header Upgrade и Connection "upgrade". Без них бэкенд получает обычный запрос и отвечает 426.
  • Сервис принимает только HTTP/2. Отдельные API и gRPC-сервисы отклоняют запросы по HTTP/1.1 и отвечают 426 с требованием перейти на HTTP/2.
  • Требование новой версии TLS на уровне приложения. Сервер отклоняет клиентов с устаревшим TLS 1.0 или 1.1 и отвечает 426 с указанием нужной версии — так поступают некоторые платёжные API.
  • Наследие RFC 2817. Редкая конфигурация: сервер на 80-м порту требует перейти на TLS внутри соединения вместо привычного редиректа на HTTPS.
  • Ошибка маршрутизации в приложении. Обработчик WebSocket-маршрута повешен на обычные страницы, и фреймворк отвечает 426 всем посетителям.

Что проверить владельцу сайта

  1. Откройте онлайн-проверку кода ответа своего сайта — она покажет реальный ответ сервера и заголовки без регистрации.
  2. Найдите в ответе заголовок Upgrade: сервер обязан указать в нём протокол, которого требует. Это сразу сужает поиск причины.
  3. Убедитесь, что на мониторинге обычная страница, а не WebSocket-адрес. Для сервисов реального времени проверяйте главную страницу или отдельную страницу состояния.
  4. Если WebSocket работает за nginx или другим прокси — проверьте, что прокси передаёт заголовки Upgrade и Connection на бэкенд.
  5. Проверьте требования к протоколу: для обычных страниц включите поддержку HTTP/1.1, а при требовании новой версии TLS сверьте настройки шифрования по гайду об ошибках SSL.
  6. После исправления добавьте адрес на постоянный мониторинг, чтобы узнать о повторении проблемы раньше посетителей.

Как часто встречается 426 на практике

Код 426 — редкий гость: за миллионы проверок Tracker.ru он встретился меньше двух десятков раз (по данным на июль 2026). Это ожидаемо: обычные сайты отдают страницы по HTTP/1.1 и HTTP/2 без принудительной смены протокола, а WebSocket-адреса на мониторинг доступности ставят редко.

Частые вопросы

Почему мониторинг показывает 426, а в браузере сайт открывается?

Скорее всего, в мониторинге указан не тот адрес: не страница, которую вы открываете, а служебный эндпоинт — например, WebSocket-адрес чата или онлайн-уведомлений. Браузер обращается к нему правильным протоколом изнутри страницы, а проверка шлёт обычный HTTP-запрос. Укажите в настройках монитора обычную страницу сайта.

Чем 426 отличается от 505 HTTP Version Not Supported?

При 505 сервер не поддерживает версию HTTP, которой воспользовался клиент, — запрос для него «слишком новый». При 426 наоборот: сервер требует перейти на другой или более новый протокол и называет его в заголовке Upgrade ответа.

Это ошибка сервера или мониторинга?

Ни то, ни другое: 426 — штатный ответ сервера на запрос по неподходящему протоколу. Если код отдаёт WebSocket-эндпоинт, сервер исправен — поменяйте адрес в настройках монитора на обычную страницу. Если 426 получают и посетители обычных страниц, ищите причину в конфигурации прокси или приложения.

См. также