HTTP1.0和HTTP1.1的主要区别

Posted 爱上口袋的天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP1.0和HTTP1.1的主要区别相关的知识,希望对你有一定的参考价值。

目录

1、长,短连接

2、新增Host报头属性

3、新增错误状态响应码

 4、带宽节约优化


1、长,短连接

        HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要重新建立连接的话,开销会比较大。因此最好能保持一个长连接,同一个c端可以用这个“长连接”来发多个请求。

  • HTTP/1.0中,默认使用的是短连接每次请求都要重新建立一次连接;
  1. 双方建立连接
  2. C端发出请求信息
  3. S端回送响应信息
  4. 双方关掉连接
  • HTTP 1.1起,默认使用报保活机制–“长连接” ,默认开启 Connection: keep-alive 报头字段(close代表关闭);

HTTP/1.1的"长连接"机制有非流水线和流水线 两种工作的方式

流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。当然,HTTP服务器得按照客户请求的顺序响应,以保证客户端能够区分出其每次请求的响应内容。

非流水线方式是客户在收到前一个响应后才能发送下一个请求。

注意: 

  • “长连接”加双引号的原因是HTTP是无状态的,因此他并没有什么长短链接的区别,他本质就是一来一回就断开连接,只是keep-alive 报头字段引入了保活机制,让他看起来像“长链接了”!

2、新增Host报头属性

        在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,但虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。

        HTTP1.1的请求消息和响应消息都应支持Host报头属性,且请求消息中如果没有Host报头属性会报告一个错误(400 Bad Request)

3、新增错误状态响应码

更具体化的像客户端反映了请求错误的信息;

如:

  • 409(Conflict)表示请求的资源与资源的当前状态发生冲突;
  • 410(Gone)表示服务器上的某个资源被永久性的删除。

 4、带宽节约优化

HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能;

  • HTTP1.1则在请求头引入了range报头属性,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。
  • 客户端事先发送一个只带Host报头属性的请求,如果服务器接收此请求就回送响应码100,客户端就可以继续发送带实体的完整请求了。

100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

以上是关于HTTP1.0和HTTP1.1的主要区别的主要内容,如果未能解决你的问题,请参考以下文章

HTTP1.0和HTTP1.1的主要区别

HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

http1.0,http1.1和http2.0的区别

http1.0及http1.1的区别/http和https的区别等总结

http1.0及http1.1的区别/http和https的区别等总结

HTTP1.0和1.1/2.0的区别