HTTP详解及HTTP1.0与HTTP1.1的区别?

关于http协议的知识点是我们面试中常常问到的又非常重要的知识点!这里我就对此知识点进行详细的分析及理解!觉得不错的可以帮忙点赞收藏!有什么问题也可以提出一起讨论交流。

什么是HTTP协议?

超文本传送协议,在浏览器与服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议。

万维网的大致工作流程如下图:
①、建立TCP连接
②、HTTP请求报文
③、HTTP响应报文
④、释放TCP连接

HTTP详解及HTTP1.0与HTTP1.1的区别?_第1张图片

1、HTTP使用了面向连接的TCP作为运输层协议,确保了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢失又怎么样重传。但是HTTP本身是无连接的,简单的说,就是虽然HTTP使用了TCP连接,但是通信双方在交换HTTP报文之前不需要先建立HTTP连接。
2、HTTP协议是无状态的。也就是说同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(j假设现在服务器还没有把这个页面进行更新),因为服务器并不记得曾经访问过的这个客户,也不记得这个客户曾经访问过服务器多少次。HTTP的无状态特性简化了服务器的设计,是服务器更容易支持大量并发的HTTP请求。
3、从浏览器请求一个万维网文档到收到整个文档所需要的时间如下图:
HTTP详解及HTTP1.0与HTTP1.1的区别?_第2张图片
a、建立TCP连接的三报文的前两部份完成后花费了一个RTT时间(往返时间)。
b、万维网客户把HTTP请求报文作为建立TCP连接的三报文握手中的第三个报文数据发给万维网服务器。
c、服务器收到HTTP请求报文之后,就把所请求的文档作为响应报文返回给客户。

时间总结:请求一个万维网文档所需要的时间就是该文档的传输时间(与文档大小成正比)加上两倍的往返时间RTT(一个RTT用于连接TCP的连接,另一个RTT用于请求和接受万维网文档)。

HTTP详解及HTTP1.0与HTTP1.1的区别?

HTTP1.0与HTTP1.1最大的区别其实就是HTTP1.0采用了非持续的TCP连接方式,需要两倍的往返时间RTT开销,而HTTP1.1采用了一段时间内的持续TCP连接方式。具体详解如下:
HTTP1.0主要缺点:就是每请求一个文档就需要两倍的RTT开销。若一个主页上有很多链接对象需要依次进行链接,每次链接下载都导致两倍的RTT开销。另一种开销就是万维网和服务器每一次建立新的TCP连接都要分配缓存和变量。而万维网服务器往往需要同时服务于大量的客户请求,这种非持续连接就会使万维网服务器负担很重!
HTTP1.1就很好的解决了这个问题,它使用了持续连接的方式。就是客户端在发送请求和万维网服务器收到并发送响应一段时间内仍然保持这这条连接。是客户端再次请求的时候不需要再次建立这条连接,客户端直接发送HTTP请求报文和服务器发送响应报文,这种方式就减少了一个RTT时间。不仅如此!
HTTP持续连接的两个工作方式如下:
1、非流水线方式客户端收到前一个的响应之后才能发出下一个请求。在建立的连接后,这种方式就比非持续连接减少了一倍往返时间RTT(TCP连接所花费的RTT).
2、流水连方式不需要收到响应就可以继续发送下一个请求。在建立连接后。此方式的客户端访问所以对象都只需要花费一个RTT时间.流水线的工作方式是TCP连接中的空闲时间减少,提高了下载文档的效率!

你可能感兴趣的:(计算机网络知识笔记,http,计算机网络)