有人能验证我的假设是否正确吗?
我认为大多数流行的浏览器(Chrome,Firefox等)都以标准方式在每行请求中使用 HTTP/1.1 发送请求。
我认为是否给出 HTTP/1.1 响应取决于托管 Web 应用程序的 Web 服务器(例如特定版本的 Apache、Nginx 等)。我假设现在所有现代 Web 服务器都具有 HTTP/1.1。如果 Web 服务器不支持 HTTP/1.1,我认为它会将 HTTP/1.1 请求解释为 HTTP/1.0 并给出 HTTP/1.0 响应。
答案1
是的,我相信你已经了解了其中的要点,但有一个例外:
- 每个请求都指定 HTTP 协议级别。
- Web 服务器根据具有上/下级别版本控制的请求来决定采取什么不同的行动(如果有的话)。
- HTTP/1.1 已经很完善并且任何像样的服务器都会支持它。
但是版本匹配并不像你建议的那样自适应。如果客户端请求指定了服务器不支持的主要版本,则服务器会响应…
505 HTTP 版本不受支持
在您的情况下,1.1 和 1.0 共享一个主要版本,因此(除了一些例外)您的假设是正确的,服务器将尝试响应低级别的请求。
有关 http 响应代码的更多信息,请参阅RFC 2616 第 10 节和第 3.1 节