HTTP Error 400. The request hostname is invalid.

异常信息

shell 复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>

原因

服务器因为历史原因使用的是 IIS部署的,IIS配置要求一个有效的主机名(Host header),而不是直接使用IP地址进行访问。这个配置可以通过IIS管理器中的"绑定"来设置。在IIS中,每个网站可以配置一个或多个绑定,这些绑定指明了网站可以响应的IP地址、端口和(可选的)主机名。如果网站配置为仅响应特定的主机名,而请求没有提供该主机名或提供了错误的主机名,IIS就会返回400错误。

解决方案

  1. 要使用IIS绑定的主机名进行请求,可以使用curl 进行测试(指定一个自定义的请求头,配置Host的值为指定要请求的主机名)
shell 复制代码
# `example.com` 应该替换成绑定的主机名
curl -H "Host: example.com" http://<IP-address>
  1. 修改IIS绑定 :如果你有权限访问IIS服务器配置,你可以添加一个新的绑定来允许直接使用IP地址访问,或者去掉绑定的主机名采用为空即解决问题。
相关推荐
学网络的APang6 小时前
Apache HTTP Server 2.4.65 详细安装教程(基于 CentOS 7)
运维·网络
FreeBuf_7 小时前
SesameOp 恶意软件滥用 OpenAI Assistants API 实现与 C2 服务器的隐蔽通信
运维·服务器·网络
tt5555555555558 小时前
Transformer原理与过程详解
网络·深度学习·transformer
翻斗花园牛图图-9 小时前
Linux网络——传输层协议UDP&&TCP
网络
yeapT9 小时前
网络传输协议的介绍——SSE
网络·websocket·http
quant_19869 小时前
【教程】使用加密货币行情接口 - 查询比特币实时价格
开发语言·后端·python·websocket·网络协议
QT 小鲜肉10 小时前
【QT/C++】Qt网络编程进阶:UDP通信和HTTP请求的基本原理和实际应用(超详细)
c语言·网络·c++·笔记·qt·http·udp
闲人编程10 小时前
用Python和Telegram API构建一个消息机器人
网络·python·机器人·api·毕设·telegram·codecapsule
掘根10 小时前
【Docker】网络
网络·docker·容器
Grass Router 小草聚合路由11 小时前
GrassRouter融合通信设备-多链路聚合路由在各行业的应急网络中的重要作用和解决方案
网络·多链路聚合·应急保障设备·多链路聚合通信设备·聚合路由·多卡聚合通信设备·5g聚合路由设备