浏览器背后的故事
HTTP
-
超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。 -
属于应用层的面向对象的协议
Web
-
WEB是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统 -
建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构
HTTP协议的前世今生
→ 1990年10月 万维网之父Tim-Berners-Lee最早提出了HTTP协议
→ 1991年 HTTP0.9诞生
→ 1996年5月 HTTP1.0发布
→ 1997年1月 HTTP1.1发布
→ 2015年5月 HTTP2.0提出
→ 2016年11月 **HTTP3.0 QUIC协议(Quick UDP Internet Connection)**是谷歌制定的一种基于UDP的低时延的互联网传输层协议
QUIC很好地解决了当今传输层和应用层面临的各种需求,包括处理更多的连接,安全性,和低延迟。QUIC融合了包括TCP,TLS,HTTP/2等协议的特性,但基于UDP传输。QUIC的一个主要目标就是减少连接延迟,当客户端第一次连接服务器时,QUIC只需要1RTT(Round-Trip Time)的延迟就可以建立可靠安全的连接,相对于TCP+TLS的1-3次RTT要更加快捷。之后客户端可以在本地缓存加密的认证信息,在再次与服务器建立连接时可以实现0-RTT的连接建立延迟。QUIC同时复用了HTTP/2协议的多路复用功能(Multiplexing),但由于QUIC基于UDP所以避免了HTTP/2的线头阻塞(Head-of-Line Blocking)问题。因为QUIC基于UDP,运行在用户域而不是系统内核,使得QUIC协议可以快速的更新和部署,从而很好地解决了TCP协议部署及更新的困难
透过TCP/IP看HTTP
-
HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集
-
应用层一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信。如:FTP、DNS、HTTP
-
传输层通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能。如:TCP、UDP
-
网络层用来处理在网络上流动的数据包,数据包时网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传输给对方
-
链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内
数据包的封装过程
HTTP数据传输过程
-
发送端发送数据时,数据从上到下,每经过一层会打上该层的头部信息 -
接收端接收数据时,数据从下到上,传输前会把下层的头部信息删除
传输层——TCP三次握手
-
三次握手才能确定双方都能正常发送和接收
DNS域名解析
-
DNS服务提供域名到IP地址之间的解析服务
HTTP事务处理过程
参考资料
编程必备基础-大话HTTP协议
原文始发于微信公众号(伯nulee):HTTP初相识
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/63924.html