HTTP协议,全称为超文本传输协议,其HTTP几个缩写字母的含义为(HyperTest Transfer Protocol),本质上是一种用于分布式,协助式的信息系统应用层协议,也是我们所熟悉的万维网的通讯基础。
HTTP的诞生年代并不久远,在1989年由欧洲的核子研究组织(CERN)发起,由万维网协会(W3C)与互联网工程组(IETF)讨论协调,多方共同制定下才有了HTTP1.1作为第一个正式发表的标准。
HTTP本质上是一种客户端(用户端),与服务器端(网站)进行数据的请求和应答的标准,相当于标准的数据交互必须满足这一统一标准,来方便各方对数据的解析与使用,而HTTP作为一种架设在TCP通信层之上的应用层协议,相当于对TCP传输的这类数据做了相关的规范,实现一统。比如我们访问某一个网站,那么客户端会向服务器发起一个HTTP的请求到指定的端口(通常为80端口),那么服务器在收到这个标注的HTTP请求后,需要对这个请求产生应答,而应答的内容则是服务器上存储的HTML文件(也就是网页上看到的内容)和图像数据,这些回复同样必须满足HTTP标准,否则回复给客户端的数据是无法正常解析的。
前面已经概括性地说明了HTTP的工作流程,核心就是请求与回复的标准,也提到了其是建立在TCP层上的一个应用层协议,那么他们详细的交互过程是怎么样的呢?
首先第一步,客户端需要先连接到指定的web服务器,当你打开浏览器输入网址访问时,浏览器会在后台创建一个TCP客户端,向服务器端请求连接,端口就是前面讲到的,一般为80端口。
第二步,后台需要进行HTTP组包,也就是HTTP协议的核心,一则数据,到底长什么样,需要有什么标准,才是协议的本质,比如如下一则请求信息,他应当包含有这些部分。
这样一则数据将会被发送至服务器,服务器需要在解析前面部分后对数据部分进行回复,需要注意的是,服务器是不对来访数据进行保存的,也没有重发机制,所以请求失败是不可逆的,如果失败需要重新发起请求。
第三步,服务器需要对数据进行返回,返回数据同样需要满足HTTP的协议标准,比如如下一则回复数据:
当客户端收到了来自于服务器的返回后,需要根据HTTP头部对整个协议包进行解析,如果解析正确,就可以取出数据部分进行使用了,这个数据部分可以是多种类型,比如像是上图的请求类型,是设备向服务器发起请求,想要获取到此时设备需要连接的MQTT服务器的信息以及设备本身需要接入mqtt服务器所需的三要素,这种请求也可以返回HTML格式的文档,也就是我们熟悉的网页文件,浏览器收到这个文件解析出来,就可以显示到屏幕上,成为了我们所见到的网页,这种数据也可以是文件,图像等,相当于协议只是载体,一个拥有标准的载体,其承载的数据类型是可以不同的。
最后一步,HTTP是一种默认的短链接协议,众所周知TCP层是面向连接的,但是封装成HTTP用户层协议后,再发起数据请求,服务器返回数据,客户端解析出正常数据后,是需要断开连接的,这样也是为了减少服务器的压力。
最后是需要说明一下HTTPS,HTTP传输协议虽然应用广泛,但是其本质是一种明文协议,也就是协议本身有着不小的安全隐患,其数据容易被截取并解析,于是HTTPS应运而生,其本质就是在HTTP协议上又增加了一层加密层,对数据进行加密,加密方法多种多样,客户端与服务器端双方根据加密所需的秘钥,对数据进行加密与解密,来得到正确的数据。
HTTP传输协议到目前为止所有的版本可以分为HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0、HTTP 3.0,其中普遍应用的是HTTP 1.1版本,正在推进HTTP 2.0版本,以及未来的HTTP 3.0版本,HTTP 3.0协议利用QUIC作为底层支撑协议,其融合UDP协议的速度、性能与TCP的安全可靠,解决了HTTP 2.0中引入的一些缺点,优化了互联网的传输体验
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的太阳集团tcy8722官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3