当我远程登录我的服务器正在连接,但是在 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 服务器都不会解析和处理该请求。