Явный номер порта в заголовке HTTP-узла для экземпляра AWS

#amazon-web-services #http #amazon-ec2 #aws-load-balancer

#amazon-веб-сервисы #http #amazon-ec2 #amazon-elb

Вопрос:

Я пытаюсь отправить HTTP-запрос со своего устройства экземпляру AWS (с балансировщиком нагрузки), и похоже, что он не может работать без явного добавления номера порта (по умолчанию — 443) в заголовок Host. Я получаю короткое сообщение 400 BAD_REQUEST. Насколько я понимаю, если порт указан по умолчанию, его не обязательно добавлять к заголовку. Но очевидно, что в моем случае это сбой. Однако curl может успешно отправить идентичный запрос на тот же сервер. При мониторинге заголовка к нему не добавляется порт. Я не уверен, что может быть причиной этой ошибки на моем устройстве, когда мой запрос такой же. Есть идеи?

Комментарии:

1. Вы правильно поняли номер порта, значит, проблема в чем-то другом. Если вы создаете HTTP-запрос с нуля, вполне вероятно, что у вас есть другая несвязанная ошибка в способе создания запроса. С какого «устройства» вы отправляете и какова его среда?

2. Да, это обработанный http-запрос. Что вызывает недоумение, так это то, что добавление номера порта устраняет эту ошибку, поэтому любая «проблема», существовавшая в моем запросе, исчезла. у меня есть аппаратное устройство со стеком следующего duo tcpip

3. Очень странно. О … а как насчет SNI? Возможно, ALB отказывается из-за несоответствия SNI. Вы также можете проверить журналы балансировщика, чтобы увидеть, появляется ли там что-нибудь полезное.

4. Итак, я просмотрел необработанный запрос, и в моем заголовке Host перед ним есть несколько дополнительных нулевых символов, и балансировщику нагрузки это не нравится. Удаление их исправило это для меня. Мне любопытно, почему это происходит только при наличии балансировщика нагрузки. У меня есть другой экземпляр AWS без балансировщика нагрузки, и запрос проходит просто отлично.