HTTP协议简述
- HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果.最终发布了一系列的RFC,RFC1945定义了HTTP/1.0版本,其中最著名的就是RFC2616,RFC2616定义了今天普遍使用的一个版本–HTTP 1.1.
- HTTP协议是用于www服务器传输超文本到本地浏览器的传送协议.它可以使浏览器更加高效,使网络传输减少,不仅保证计算机正确快速地传输超文本内容,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等.
- HTTP是一个面向事务的应用层协议,由请求和相应构成,是一个标准的客户端服务器模型.
- HTTP是一个无状态的协议.
HTTP协议的主要特点
1.支持面向事务的客户端/服务器模式.
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET、HEAD、POST.每种方法规定了客户与服务器联系的类型不同.由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快.
3.灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记.
4.无连接:无连接的含义是限制每次连接只处理一个请求.服务器处理完客户的请求,并受到客户的应答后,即断开连接.采用这种方式可以节省传输时间.
5.无状态:HTTP协议是无状态协议.无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大.另一方面,在服务器不需要先前信息时它的应答就较快.
请求一个万维网文档需要的时间
HTTP/1.1协议使用持续连接(persistent connection)
万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文.
这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行.
目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1.
非流水线方式:客户在收到前一个响应后才能发出下一个请求.这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间.但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源.
流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文.一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文.使用流水线方式时,客户访问所有的对象只需花费一个 RTT时间,使 TCP 连接中的空闲时间减少,提高