#java #spring #nginx #download
#java #spring #nginx #Скачать
Вопрос:
У меня есть API (https://xyz-abc.com/api/signed/resource/get?signedKey=234e23423 ) для загрузки файла ресурса (xlsx, pdf). Пользователю отправляется электронное письмо со ссылкой для загрузки ресурса. Этой ссылке присваивается href в качестве URL-адреса API, т.е. https://xyz-abc.com/api/signed/resource/get?signedKey=234e23423
Когда пользователь нажимает на эту ссылку из своего электронного письма, открывается новая вкладка и вызывается этот API. Файл загружается в браузер пользователя в виде вложения. Но иногда открываемая новая вкладка не закрывается, и на этой вкладке браузера пользователю отображается следующее сообщение —
This site can’t be reached
The web page at https://xyz-abc.com/api/signed/resource/get?signedKey=234e23423 might be temporarily down or it may have moved permanently to a new web address.
ERR_INVALID_RESPONSE
Почему эта ошибка отображается в браузере, и это тоже в некоторых случаях. Когда пользователь снова нажимает на тот же URL, вкладка автоматически закрывается, и файл загружается.
Я использую контроллеры nginx и java spring в серверной части.
Обновление 1 — Добавление скриншота вкладки сети —
Комментарии:
1. Не видя кода, который обслуживает файл, сетевого трафика, связанного с запросом на загрузку, и специфической диагностики браузера и сетевого подключения на стороне клиента, ответить на этот вопрос будет практически невозможно. URL веб-ресурса вряд ли является основной причиной вашей проблемы сам по себе.
2. Предоставленная вами информация ограничена, но nginx можно использовать в качестве балансировщика нагрузки. Если nginx полагается на разные экземпляры, а ваш серверный сервер находится в состоянии, например, signedKey= 234e23423 распознается только определенным экземпляром, тогда страница открывается, только если nginx указывает на правильный экземпляр, который сгенерировал электронное письмо. Если это так, предлагаю переписать серверную часть, т.Е. Сохранить файл в файловой системе и разрешить всем экземплярам beckend генерировать ответ,
3. @kolossus Я приложил скриншот вкладки «Сеть». Вы можете получить подробную информацию о заголовках запросов и ответов из скриншота. Надеюсь, это поможет в дальнейшей диагностике проблемы.
4. @RobertoPetrilli Я приложил скриншот вкладки сети, с помощью которой вы можете получить подробную информацию о заголовках запросов и ответов. Серверная часть не имеет состояния.