什么是HTTP
http 是 HyperText Transfer Protocol,也就是超文本传输协议。
HyperText(超文本)
:在电脑种显示的、含有可以指向其他文本的链接的文本HTML
:Html就是超文本的一种,用于存储和表达页面的文本格式,最初的Htpp就是用于传输html文本的Transfer Protocol
:传输控制协议,用于传输过程中,我们想要获得哪种数据,以及如何请求和获取相关内容的协议- 每个Http请求在1.1的时候,每次请求都会建立TCP请求。在Http2以上就有连接多路复用了
我们要知道HTTP不是互联网,也不是编程语言,是一种协议(规定)。HTTP是基于TCP/IP通讯协议来传递数据的应用协议,依靠IP协议实现寻址和路由、TCP协议实现可靠数据传输、DNS协议实现域名查找、SSL/TLS协议实现安全通讯。此外还有一些协议依赖于HTTP,例如:WebSocket、HTTPDNS、https等。这些协议相互交织,构成了一个协议网,而HTTP则处于中心地位。
那到底什么是“超文本”,什么是“协议”?HTTP下面还有那些协议?HTTP有什么缺点以及优点?
协议 Protocol
HTTP是一个协议,其实就是一种规范约定,约定双方需要遵循的东西,只有在这个规定下双方才能正确的执行对于的动作和享有对应的权益。
如果只有你一个人,那自然你可以想干嘛就干嘛,不干涉其他人,其他人也不干涉你,也就不需要所谓的“协议”。但是,一旦有了两个以上的参与者出现,为了保证最基本的流畅交流,协议就自然而然的出现了。
所以HTTP是一个用在计算机世界里的协议。它使计算机能够理解的语言确立了一种计算机之间交流通讯的规范,以及相关的各种控制喝错误处理方式。
传输 Transfer
HTTP是一个“传输协议”,所谓的“传输”(Transfer) 其实很好理解,就说把一堆东西从A点搬到B点,或者从B点搬到A点,A <====>B。
HTTP协议是一个“双向协议”
也就是说,有两个最基本的参与者A和B,从A开始到B结束,数据在A和B之间双向而不是单向流动。通常我们把先发起传输动作的A叫做“请求方”,然后接到传输的B叫做“应答方”或者“响应方”。
双方约定使用HTTP协议来通讯,浏览器把一些数据发送给服务器,服务器再把数据返回给浏览器。
数据虽然是再A和B之间传输,但并没有限制只有A和B这两个角色,允许中间有“中转”或“接力”。
这样,传输方式就从“A<===>B”,变成了“A<===>X<===>Y<===>Z<===>B”,A 到 B 的传输过程中可以存在任意多个“中间人”,而这些中间人也都需要遵从HTTP协议,只要不打扰基本的数据传输,就可以添加任意的额外功能,例如安全认知、数据压缩、编码转换等等,优化整个传输过程。
所以HTTP是一个在计算机世界里专门用来两点之间传输数据的约定和规范。
超文本 HyperText
所谓的“文本”(Text), 就是表示HTTP传输的不是TCP/UDP这些底层协议里被切分的杂乱无章的二进制包,而是完整的、有意义的数据、可以被浏览器、服务器这些上层应用程序处理。
从字面含义理解:“超文本”就是超越了普通文本,也就是图片、音频、视频、压缩包等混合体,最关键的是含有“超链接”,能够从一个“超文本”链接到另外一个“超文本”,形成复杂的非线性、网状的结构关系。
我们最熟悉的就应该是HTML了,它本身只是纯文字文件,但内部用了很多标签定义了对图片、音频、视频、等的链接,再经过浏览器的解释最终呈现在我们面前的就是一个含有多种视听信息的页面。
总结:HTTP是一个在计算机世界里专门在两点之间传输文本,图片,视频,压缩包等超文本数据的约定和规范。