Почему мой сервер возвращает HTTP 304, хотя у клиента никогда не было ресурса, и как я могу это предотвратить?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему мой сервер возвращает HTTP 304, хотя у клиента никогда не было ресурса, и как я могу это предотвратить?

Сообщение Anonymous »

Я создаю приложение React и использую Axios для получения ресурсов с моего сервера.
Иногда мой первоначальный запрос ресурса завершается неудачей (например, из-за сетевой ошибки или пустого ответа). Но когда я повторяю запрос, сервер отвечает HTTP 304 Not Modified, даже несмотря на то, что у моего клиента фактически нет кэшированного ресурса.
Я ожидал, что сервер вернет новую копию (HTTP 200), но, похоже, предполагается, что у клиента есть кэшированная версия.
Вот минимальный пример моего запроса Axios:

Код: Выделить всё

axios.get('/my/resource')
.then(response => {
console.log(response.status, response.data);
})
.catch(error => {
console.error(error);
});
Вопросы:
  • Почему сервер отвечает 304 Not Modified, когда у моего клиента нет ресурса?
  • Как настроить Axios (или заголовки HTTP), чтобы сервер всегда возвращал ресурс, даже после предыдущего неудачного запроса?
  • Существуют ли лучшие практики чтобы избежать подобных проблем с кэшированием в приложениях React/JS?
Я знаю, что заголовки Cache-Control существуют, но не знаю, как их применять, чтобы гарантировать, что клиент действительно получит ресурс после неудачной выборки.

Подробнее здесь: https://stackoverflow.com/questions/798 ... urce-and-h
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»