相关疑难解决方法(0)

在主机标头不匹配的虚拟主机环境中返回400

考虑一个服务于三个虚拟主机的Web服务器:

  • mysite.com
  • myothersite.com
  • imnotcreative.com

现在假设服务器收到以下原始请求消息(代码格式化删除了终止\r\n序列):

GET / HTTP/1.1
Host: nothostedhere.com
Run Code Online (Sandbox Code Playgroud)

关于如何响应当前服务器上不存在的主机名请求,我没有在RFC 2616中看到任何指导(也许我错过了?).例如,Apache只会将其配置中定义的第一个虚拟主机用作"主要主机",并假装客户端请求该主机.显然,这比返回400 Bad Request响应更有效,并保证客户端总能看到一些表示.

所以我的问题是......

400如果客户端在使用HTTP/1.1协议时请求不存在的主机,那么除了"健壮性与正确性"参数之外,任何人都可以提供理由来阻止我对(或其他错误代码)做出响应吗?


请注意,所有HTTP/1.1请求必须Host:根据RFC 2616 指定标头.对于HTTP/1.0请求,唯一真正的选项是提供"主"主机结果.此问题专门针对HTTP/1.1协议请求.

http

3
推荐指数
1
解决办法
3228
查看次数

标签 统计

http ×1