HTTP 协定(超文本传输协定)定义了 Web 客户端如何从 Web 服务器申请 Web 页面,以及服务器如何把 Web 界面传送个客户端。
http 协定采纳申请 / 响应模型。客户端向服务器发送一个申请报文,申请报文蕴含申请的办法、URL、协定版本、申请头部和申请数据。服务器以一个状态行作为响应,响应的内容包含协定的版本、胜利或者谬误的代码、服务器信息、响应头部和响应数据。
TCP/IP 协定族:
分为四层:链路层、网络层、传输层、应用层.
应用层规定了向用户提供应用服务时通信的协定。TCP/IP 协定族内预存了各类通用的的应用服务协定,FTP,DNS,HTTP;
传输层提供处于网络中的两台计算机之间的数据传输所应用的协定。传输层中有两个性质不同的协定,**TCP(传输控制协议)**:TCP 发送数据和接收数据是同步的。TCP 协定再建设和断开连接时有三次握手和四次挥手,因而在传输的过程中稳固牢靠。** UDP(用户数据报协定)**:UDP 协定是面向无连贯的,在正式传递数据之前你不须要先建设连贯,UDP 协定不保障有序且不失落的传递到对端,不够稳固。网络层规定了数据通过怎么的传输路线达到对方计算机传送到对方。链路层:用来解决连贯网络的硬件局部。
http/1.0
最早的 http 只是应用在一些较为简单的网页上和网络申请上。每次申请都关上一个新的 TCP 连贯,收到响应之后立刻断开连接。
http/1.1
http/1.1 引入了更多的缓存控制策略;http/1.1 容许范畴申请,即在申请头中退出 Range 头部;http/1.1 的申请和响应信息都必须蕴含 host 头部,以辨别同一个物理主机中的不同虚拟主机域名
http/1.1 默认开启长久连贯,在一个 TCP 连贯上能够传送多个 HTTP 申请和响应,缩小了建设和敞开连贯的耗费和提早。
http/2.0
** 新的二进制格局 **:http/1.x 的解析是基于文本的,基于文本协定的解析存在人造缺点,文本的表现形式有多样性,要做到全面性思考的场景必然很多。二进制则不同,至辨认 0 和 1 的组合。http/2.0 采纳二进制格局,不便且弱小。** 多路复用 **:多路复用容许并发的发动多个申请,每个申请及该申请的响应不须要期待其余的申请或响应,防止了线头阻塞问题。这样某个申请工作耗时重大,不会影响到其余连贯的失常执行,极大地提高传输性能。** 头部压缩 **:http/1.x 的申请和响应头带有大量信息,而且每次申请都要反复发送,http/2.0 应用 encoder 来缩小要传输的头部大小,通信单方各自 cache 一份头部 fileds 表,既防止了反复头部的传输,又减小了须要传输的大小。** 服务端推送 **:把客户端所须要的 css/js/img 资源随同着 index.html 一起发送到客户端,省去了客户端反复申请的步骤。