Почему он просто не возвращает 304?
Потому что когда вы нажимаете F5 , вы теряете кэш вашего браузера.В основном ваш тест имеет недостатки.Вы должны размещать ссылки на этот пакет на разных страницах (используя тег <script>
).Затем вы должны перейти на эти страницы с помощью гиперссылок.Теперь обратите внимание на вкладку Network
.
Также убедитесь, что вы работаете в режиме выпуска.
ОБНОВЛЕНИЕ:
ОК, после того, как выкопаете немного больше, вот чтоЯ узнал.Код состояния 200 HTTP действительно всегда отправляется, что является нормальным.Но во второй раз пакет выбирается из кэша.
Вот первый запрос:

Мы можем видеть, что в этом случае пакет приходит изсервер с заголовками ответов HTTP-кэша.
А вот второй запрос:

На этом втором снимке экрана ясно видно, что пакет подается из кэша,Обратите внимание, как вся линия отображается серым цветом.Код состояния HTTP 200 вымышленный => клиент даже не отправляет HTTP-запрос на сервер, поскольку он получает пакет непосредственно из своего кэша.
И я могу наблюдать то же самое в Google Chrome.
Для первого запроса:

И для второго запроса:
