Тайм-аут сервера HTTP.Когда это должно быть отправлено - PullRequest
0 голосов
/ 01 апреля 2019

Я пишу небольшой http-сервер и пытаюсь понять проблемы тайм-аута.

RFC7230 не дайте ответа на вопрос, при каких условиях сервер отправляет тайм-аут (408Запрос таймаута).Должен ли он быть отправлен, когда клиент отправляет запрос слишком долго?Или если в открытом соединении какое-то время ничего не отправлялось?Какая логика должна быть?Есть ли стандартная или поведенческая модель?

1 Ответ

1 голос
/ 01 апреля 2019

Весь процесс будет

ожидание запроса на сервере -> чтение заголовка запроса -> чтение тела запроса -> подготовка заголовка ответа -> подготовка тела ответа

Так что если запрос принимаетнапример: 30 секунд, затем сервер вернет заголовок ответа с кодом 408 Тайм-аут запроса

Следующий случай - когда сервер может прочитать весь заголовок и тело запроса и попытаться обработать этот запрос, но не может выполнить его вколичество времени, после которого он вернет 504 Gateway Timeout или 503 Service Unavailable.

Это будет зависеть от каждой ситуации.Но правило всегда использует 4xx для ошибок запроса и 5xx для ошибок сервера

Краткое описание для http-кода thoose приведено здесь: Коды состояния ответа HTTP

...