JS сервис-воркер и API хранения кеша с http 302 - как кэшировать перенаправление?

У меня есть веб-страница, серверная через https от Tomcat, с сервисворкером в соответствии с примерами для извлечения ресурса и сохранения его в кеше. Если Tomcat не запущен, страница обслуживается из хранилища кеша — пока все хорошо.
Моя конфигурация Tomcat содержит атрибут redirectPort для перенаправления http на https. У меня проблема: когда Tomcat не запущен и доступ к моей веб-странице осуществляется через http, браузер показывает: Соединение отклонено, так как перенаправление http 302 не сохраняется в кеше. Как я мог этого добиться?


person Michael Enke    schedule 13.04.2021    source источник


Ответы (1)


К сожалению, сервис-воркеры требуют https для безопасности, поэтому сервис-воркер не может перехватывать http-запрос.

Если вы хотите, чтобы браузеры посещали вашу страницу через https, вы можете включить HSTS:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

Список HSTS можно предварительно загрузить в браузер, чтобы он работал в автономном режиме. Обратите внимание, однако, что вам нужно быть осторожным при включении HSTS, так как если вы допустили ошибку, ее может быть трудно исправить.

В качестве альтернативы браузеры постепенно переходят к загрузке https по умолчанию, если пользователь явно не вводит http. Например:

https://blog.chromium.org/2021/03/a-safe-default-for-navigation-https.html

person Ben Kelly    schedule 26.04.2021
comment
Хороший вопрос с HSTS, спасибо. Я забыл, что сервисному работнику требуется https (кроме 127.0.0.1/localhost). - person Michael Enke; 01.05.2021