没有从 Web 服务器获取对请求 GET 的响应/

没有从 Web 服务器获取对请求 GET 的响应/

当我远程登录我的服务器正在连接,但是在 telnet 连接之后如果我请求得到 /,它没有给出任何响应。但是,在 telnet 连接后,如果我请求获取/HTTP/1.1,它给了我回应。我知道这是防火墙问题,因为我没有得到回应得到 /但得到获取/HTTP/1.1

答案1

原本的HTTP 0.9protocol 允许使用单个 GET,而无需指定主机名或协议。例如:

GET /index.html

要使用 HTTP 1.0,您需要指定协议,但 Host 标头字段尚未定义请求函数所以不是必需的。HTTP 1.0 请求示例:

GET /index.html HTTP/1.0

对于 HTTP 1.1,您需要按照以下说明指定协议和主机标头RFC 2616

GET /index.html HTTP/1.1
Host: www.example.com

您的 Web 服务器可能支持不同版本的 HTTP 协议,因此有些服务器接受 HTTP 0.9 样式的请求,而其他较新的服务器则不接受。

答案2

虽然简单的 Web 服务器可能会响应“GET /”,但这不是一个正确/真实/兼容的请求,因此防火墙甚至 Web 服务器都不会解析和处理该请求。

https://www.rfc-editor.org/rfc/rfc2068#section-5.1

相关内容