В чем разница между ошибками HTTP 408 и 504?
Это ошибки тайм-аута, но у кого тайм-аут в 408 против 504?
Из w3, 408 определяется как:
Клиент не выдал запрос в течение времени, когда сервер был готов ждать. Клиент МОЖЕТ повторить запрос без изменений в любое более позднее время.
... а 504 это:
Сервер, действуя как шлюз или прокси-сервер, не получил своевременный ответ от вышестоящего сервера, указанного в URI (например, HTTP, FTP, LDAP), или какого-либо другого вспомогательного сервера (например, DNS), к которому он должен был получить доступ при попытке завершить запрос.
Так кто же "клиент" в 408, если не посреднический сервер? Если это фактический конечный пользователь, как сервер узнает, что он ждет своего запроса, прежде чем он его сделает?
2 ответа
Клиент - это браузер или клиентское приложение. Сервер знает, что ждать запроса, потому что он принял соединение или уже прочитал часть запроса, скажем, заголовок или два.
ДокументацияAmazon сообщает: http://docs.aws.amazon.com/en_en/elasticloadbalancing/latest/classic/ts-elb-error-message.html
Указывает, что клиент отменил запрос или не смог отправить полный запрос
ДокументацияMozilla сообщает: https://developer.mozilla.org/en/docs/Web/HTTP/Status/408
Код состояния ответа HTTP 408 Request Timeout означает, что сервер хочет отключить это неиспользуемое соединение. Он отправляется на простое соединение некоторыми серверами, даже без предварительного запроса клиента