Разница в поведении между кодом состояния HTTP 410 и другими кодами w.r.t Angular 5 - PullRequest
0 голосов
/ 27 апреля 2018

Серверная часть: Java Внешний интерфейс: Угловой 5

Учтите это:

Веб-интерфейс выполняет HTTP-запрос к бэкэнду.

Бэкэнд возвращает код статуса HTTP в ответ на запрос веб-интерфейса.

Для тестирования обработки ошибок я вручную изменяю код HTTP, возвращаемый из серверной части.

Сценарий 1:

При установке возвращаемого кода в значение FORBIDDEN (407) клиентский интерфейс правильно отображал ошибку 407. Теперь, вернув код в положение OK (200), веб-интерфейс также правильно это отразил.

Сценарий 2:

При установке возвращаемого кода в GONE (410) интерфейс правильно отображал ошибку 410. Однако при возврате кода в OK (200) интерфейс не правильно отразил изменение, но продолжал отображать ошибку 410.

Фактически, даже после остановки сервера интерфейс не показывал ошибки net::ERR_CONNECTION_REFUSED, но продолжал показывать 410.

Есть объяснения?

1 Ответ

0 голосов
/ 27 апреля 2018

Будьте осторожны при использовании HTTP response status 410, поскольку он будет кэшироваться в браузере для указания того, что целевой ресурс больше не доступен с исходного сервера и не будет снова доступен (это решает сторона сервера). См. подробности .

Поскольку серверная сторона определяет истекший период при ответе с помощью 410, поэтому браузер просто кеширует его, и в следующий раз, когда вы попытаетесь запросить тот же ресурс, браузер не будет запускать запрос, пока не истечет срок его действия. Это может помочь предотвратить бесполезные запросы.

...