Сбой проверки работоспособности AWS Load Balancer для URL с # - PullRequest
0 голосов
/ 13 сентября 2018

Я настроил проверку работоспособности балансировщика нагрузки EC2 так, чтобы она указывала на URL с #, например /#/applications

Когда я захожу в окно и сверну URL, я получаю код ответа 200.

Однако балансировщик нагрузки выдает эту ошибку:

Health checks failed with these codes: [400]

Если я изменю URL проверки работоспособности на /, тогда балансировщик нагрузки скажет, что все в порядке.

Я подозреваю, что это может быть проблема с кодировкой URL. Существуют ли какие-либо ограничения в отношении того, какие символы разрешены в URL?

1 Ответ

0 голосов
/ 14 сентября 2018

# не является допустимым символом в URI запроса. Символ # обозначает начало фрагмента URL.

Когда вы обращаетесь к URL с помощью #, URI обрезается браузером до # перед отправкой на сервер. Серверы никогда этого не видят - это только для использования на стороне клиента.

Таким образом, он недействителен при проверке работоспособности, и сервер правильно отклонил его как 400 Bad Request. Получите доступ к URL-адресу на вашем сайте с фрагментом из браузера, и вы заметите, что # не зарегистрирован веб-сервером, потому что браузер не отправляет его.

Если по какой-то причине вам действительно нужен кодированный # URL-адрес, он будет записан как %23, но я бы не ожидал, что это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...