100 Continue — промежуточный (информационный) ответ. Он сообщает клиенту, что сервер получил заголовки запроса, не отклонил их и готов принять тело запроса. Окончательный ответ, например 201 Created или 413 Content Too Large, придет позже по тому же соединению.
Этот код нужен для загрузки больших объемов данных. Клиент, который не хочет передавать мегабайты только для того, чтобы получить отказ, добавляет в запрос заголовок Expect: 100-continue и немного ждет. Если сервер отвечает 100 Continue, клиент отправляет тело. Если сервер сразу возвращает окончательную ошибку, например 401 или 413, клиент может вообще не загружать данные. Сервер, который не может выполнить ожидание, вправе ответить 417 Expectation Failed.
Браузеры сами не отправляют Expect: 100-continue. Его используют HTTP-библиотеки, утилиты командной строки вроде curl и API-клиенты, которые загружают файлы. Бесконечно клиенты не ждут: если код 100 не пришел за короткое время (в curl по умолчанию — одна секунда), они все равно отправляют тело. Клиентам HTTP/1.0 серверы не должны отправлять ответы 1xx.
Пример ответа
HTTP/1.1 100 Continue
HTTP/1.1 201 Created
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /uploads/7f3c9a2e
Content-Length: 0 SEO и проверка редиректов
Поисковые системы никогда не видят 100 в качестве кода ответа страницы. За ним всегда следует окончательный ответ, и именно его код показывают поисковые роботы и проверка редиректов. Промежуточные ответы обрабатывает сам HTTP-клиент, поэтому TrueURL показывает окончательный код ответа на каждом переходе, а не предшествовавший ему 100 Continue.
Типичные причины и сценарии использования
- API-клиент или curl загружает большое тело запроса с заголовком
Expect: 100-continue, и сервер соглашается его принять. - Обратный прокси или сервер приложений отвечает на ожидание вместо самого приложения.
- Загрузка около секунды «висит», прежде чем начаться: клиент ждет
100 Continue, который сервер так и не отправляет. Отключите ожидание в клиенте или добавьте его поддержку на сервере.