HTTP协议原理及java实现:数据的基本传输模式

zu说到基于TCP协议的上层协议,绝对绕不开的是HTTP协议,在其设计之初,设计者绝对想不到该协议具备的灵活性能够让其成为最广泛使用的TCP上层协议,在我看来HTTP协议几乎能够取代任何基于TCP的上层协议,如今基于互联网的绝大多数移动应用,他们使用的都是HTTP协议,甚至苹果专用的流媒体传输协议HLS,使用的也是HTTP协议,同时现在非常流行的所谓小程序,它们也要基于HTTP协议实现客户端与服务器端的通讯,因此掌握TCP/IP协议就必须要掌握HTTP协议。

HTTP协议的目的非常简单,就是让客户端快速简洁的从服务器请求超文本文件,随着协议的不断进化,它的灵活性能引入更多复杂功能,在深入介绍其原理之前,我们先看看协议规范下,客户端如何与服务器沟通。HTTP协议的运行基于简单的请求-回应模式,首先客户端根据HTTP协议规定构造特定结构的HTTP文本,将客户端要请求的数据信息放置在文本中发送给服务器;服务器收到请求后,结合HTTP协议规范解读客户端发送来的信息,然后将客户端请求的数据返回,HTTP基本交互模式如下:

屏幕快照 2020-04-08 下午5.34.13.png

在HTTP1.0中,客户端与服务器属于“一夜情”模式,双方建立的连接在一次信息交互后立马断开,如果双方需要多次数据交互,那么就需要进行多次tcp连接,这是1.0版本让人诟病之处,HTTP协议在运行时经常使用到中介,于是客户端先把请求发送给中介,中介先对请求数据做预处理,如果客户端想要的数据已经存储在中介,那么中介就会立即将数据返回,于是客户端与服务器就没有交互。如果中介没有客户端想要的数据,他就会将请求转发给服务器,服务器应答请求后会将数据返回给中介,中介将数据缓存,然后将数据回发给客户端,基本流程如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值