Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP 是什么 #23

Open
18888628835 opened this issue May 17, 2021 · 0 comments
Open

HTTP 是什么 #23

18888628835 opened this issue May 17, 2021 · 0 comments

Comments

@18888628835
Copy link
Owner

HTTP 是什么

HTTP 的全称是超文本传输协议(HyperTextTransfer Protocol),从名字来看,这个协议可以拆成三个部分:

  • 超文本
  • 传输
  • 协议

协议

什么是协议呢?这个就跟平常生活中的协议:劳动协议、租房协议等是一个概念,HTTP 协议的本质也是类似于这样的协议。

我们从协议的字面意思入手,首先协是协同的意思,也就是说会有多方参与。其次,正是有了多方的协同,才需要一些基本的交流礼仪和行为约定,这就是议。

协议意味着多个参与者为了同样的目的而站着一起,为了保证协同工作,必须制定各方的责任、权利等行为约定。

那么自此,HTTP 的第一层含义出来了:

HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。

传输

HTTP 是一个用于传输的协议,传输(transfer)的意思就是把某个东西从 A 搬运到 B 点。它包含以下两个信息:

1.HTTP 是双向协议

HTTP 的传输起码需要保证有两个参与者,A 与 B。数据需要在 A 跟 B 之间双向流动。通常把先发起动作的 A 称之为请求方,后接收传输方称为响应方

比如浏览器就经常是请求方,而响应方则是服务器,他们依靠 HTTP 协议进行通信,浏览器将数据请求发送给服务器,服务器返回一些格式的数据,最后浏览器拿到数据并进行渲染展示。

2.数据虽然是双向传输,但是允许有中转

原先的 A<==>B,变成了 A<==>中转站1<==>中转站2等<==>B,只要不影响 A 到 B 的传输,原理上传输过程中运行存在多个中间人。这样中间人同样也遵循HTTP 协议,但是他们可以做数据转发、安全认证、数据压缩等功能,优化传输过程。

由此,我们知道 HTTP 的第二层含义:

HTTP 是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。

超文本

既然称文本(Text),就表示HTTP 传输的是一段完整的、有意义的数据,可以被浏览器、服务器等处理,并不是二进制包。

在早期,传输的文本只是普通的文字,但是现在,我们可以传输音频、图片、视频等多种数据流,所以超文本的意思就是超越普通文本,是多种数据的混合体文本,它还可以包括超链接,能够从一个超文本跳转到另外一个超文本,形成网状的结构关系。

HTML 就是超文本的一种,他本身只是纯文字的文件,但是他的标签可以定义图片、视频的连接,最后被浏览器所解释,形成含有多种视听信息的页面。

那么超文本的解释就是

文字、图片、音频、视频等超文本数据的集合

小结

HTTP 是一个在计算机世界里专门用于两点之间传输视频、音频、图片、文字等超文本数据的通信约定和规范。

虽然HTTP 没有实体,但是依赖需要技术实现,它也是构建互联网的重要基础和技术

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant