Java教程

HTTP

本文主要是介绍HTTP,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

超文本传输协议HTTP

  1. HTTP操作过程
    • HTTP协议定义了浏览器(万维网客户进程)怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器。从层次的角度来看,
      HTTP是面向事物的应用层协议。
    • HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输,但是HTTP协议本身是无连接的。
      这就是为什么虽然HTTP协议采用了TCP连接,但是通信双方在交换HTTP报文之前不需要建立HTTP连接。在1997年采用的是RFC 1945
      定义的HTTP/1.0协议。现在普遍使用的是升级版本HTTP/1.1[RFC 7231]。
    • HTTP协议是无状态的,使得HTTP更容易支持大量并发的HTTP请求。
  2. HTTP/1.0协议的主要缺点,就是每次请求报文的时候,就是每次请求一个文档就需要两倍RTT时间的开销,
    这种非持续连接会使得万维网服务器负担很重。因此使用并行TCP连接可以很好的解决这个问题。
  3. HTTP/1.1刚好解决了这个问题,它使用持续连接,所谓持续连接就是就是万维网服务器在发送响应后仍然在一段时间内能够继续保持这条连接,
    使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。
  4. HTTP/1.1的工作方式有两种:
    1. 非流水线特点:是客户在收到前一个响应后才能发出下一个请求。因此,在TCP建立连接后,客户每访问一次对象都要用去一个往返时间RTT,
      这比非持续连接要用去两倍RTT时间的开销,节省了建立TCP连接所需的一个RTT时间。这比非持续连接要用去两倍的RTT开销,
      节省了建立TCP连接所需的一个RTT时间,但非流水线方式还是有缺陷的,因为服务器发完一个对象后,其TCP处于空闲状态,浪费了服务器资源。
    2. 流水线特点:是客户收到HTTP的响应报文之前就能够发送新的请求报文。于是一个接着一个的请求报文到达服务器后,
      服务器就可以连续的发回响应报文。因此,适用流水线方式时,客户访问所有的对象只需要花费一个RTT时间,流水线工作方式使得TCP连接中的空闲时间减少
      ,提高了下载文档的效率。
  5. 代理服务器
    • 代理服务器是一种网络实体,它又成为万维网高速缓存(Web cache)
      代理服务器把最近的一些请求和响应暂存到本地磁盘中,当新的请求到达的时候,若代理服务器发现这个请求
      与暂时存放的请求相同,就暂存返回的响应,而并不需要要再根据URL再次请求网络资源。代理服务器可以再
      客户端或者服务区工作。
这篇关于HTTP的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!