参考:http://www.javashuo.com/article/p-oogwwlre-ku.htmlhtml
http://www.javashuo.com/article/p-qvsvllmo-gp.html浏览器
http://www.javashuo.com/article/p-wqikmszc-hc.html服务器
TCP协议
TCP(Transmission Control Protocol 传输控制协议)是一种面向链接的、可靠的、基于字节流的{传输层}通讯协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另外一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不一样主机的应用层之间常常须要可靠的、像管道同样的链接,可是IP层不提供这样的流机制,而是提供不可靠的包交换。网络
HTTP协议
HTTP是一个属于应用层的面向对象的协议,因为其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,通过几年的使用与发展,获得不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工做正在进行之中,并且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议的主要特色可归纳以下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法经常使用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不一样。因为HTTP协议简单,使得HTTP服务器的程序规模小,于是通讯速度很快。
3.灵活:HTTP容许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无链接:无链接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接。采用这种方式能够节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息,则它必须重传,这样可能致使每次链接传送的数据量增大。另外一方面,在服务器不须要先前信息时它的应答就较快。
分布式
TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来讲,两者没有可比性。Http协议是创建在TCP协议基础之上的,当浏览器须要从服务器获取网页数据的时候,会发出一次Http请求。Http会经过TCP创建起一个到服务器的链接通道。简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP链接不会关闭,若是客户端再次访问这个服务器上的网页,会继续使用这一条已经创建的链接Keep-Alive不会永久保持链接,它有一个保持时间,能够在不一样的服务器软件(如Apache)中设定这个时间。Http是无状态的短链接,而TCP是有状态的长链接
ui