HTTP1.0和HTTP1.1的区别

5 分钟阅读 481 字 + 643 词
  • 首先 http1.1是默认支持持久连接的 ,可以通过 设置Connection字段为 keep-alive来实现 减少连接建立和关闭的开销 。而http1.0默认为短连接。
  • http1.1是 支持管道化的 ,可以在 请求的响应到达之前发送多个请求 ,可以 减少等待时间 ,但是 在处理方那边还是需要按照请求顺序处理。
  • http1.1引入了 比如etag的缓存控制策略 ,直接对 资源进行hash ,可以更加精确的确保资源是否被修改。
参考答案:
  1. 持久连接 HTTP/1.1 默认 支持持久连接 ,允许在一个TCP连接上发送多个HTTP请求和响应,减少了连接建立和关闭的开销。而** HTTP/1.0 默认为短连接,每次请求都需要建立一个TCP连接**,并通过 Connection: keep-alive 头来实现持久连接。
  2. 管道化 HTTP/1.1 支持管道化 (不是默认开启),允许 客户端在第一个请求的响应到达之前发送多个请求 ,这可以减少等待时间,提高效率。 HTTP/1.0不支持管道化。
  3. 缓存控制 HTTP1.0 主要使用 If-Modified-Since/Expires 来做为缓存判断的标准, HTTP1.1 则引入了更多的缓存控制策略例如 Etag / If-None-Match 等更多可供选择的缓存头来控制缓存策略。
  4. 错误处理: HTTP/1.1 增加了一些新的HTTP状态码,如 100 Continue ,用于增强错误处理和请求的中间响应。
  5. Host 头: HTTP/1.1 引入了 Host 头,允许客户端指定请求的主机名,这使得在同一台服务器上托管多个域名成为可能。HTTP/1.0没有这个头字段。
  6. 带宽优化 : HTTP1.0 中,存在一些浪费带宽的现象,例如客户端 只是需要某个对象的一部分,而服务器却将整个对象送过来了 并且不支持断点续传功能 , 而 HTTP1.1 则在 请求头引入了 range 头域 ,它允许只请求资源的某个部分,即返回码是 206(Partial Content)