初识HTTP

143 阅读4分钟

初识HTTP

先导语

在日常开发和面试过程中,我们经常会听到一个问题:“什么是HTTP?”。然后得到得答案是:“HTTP是一种超文本传输协议。” 然后像我这样对HTTP协议并不熟悉的人听了,就感觉自己好像懂了,但是又感觉自己好像没懂。这种感觉很迷茫,所以从今天开始,我们就来好好学习一下HTTP协议。当然,还是从“什么是HTTP协议”这个老生常谈的问题开始。

HTTP是什么?

HTTP的名字是:"超文本传输协议"。它可以拆成3个部分分别是“超文本”,“传输”和“协议”。接下来,就让我们从这三个方面来解释。

协议

首先,在我们的生活中就存在各种协议,比如说:我们刚毕业的时候,签署的三方协议。再比如说,我们租房的时候,签署的租房协议。这些协议,在本质上来讲,与Http的相同的。它们都制定了一些约定和规则。所以,在我们了解协议之后,可以了解HTTP的第一层含义了:HTTP是一个用在计算机世界里面的协议。它使用计算机能够理解的语言确定了计算机之间沟通交流的规范,以及相关的各种控制和错误处理方式。

传输

所谓的“传输”(Transfer)其实很好理解,就是把一堆东西从 A 点搬到 B 点,或者从 B 点搬到 A 点,即“A<===>B” 不要小看这个动作,这里面只扫包含了两点含义:
1. HTTP是一个双向协议
这里面有两个最基本的参与者 A 和 B,从 A 开始到 B 结束,数据在 A 和 B 之间双向而不是单向流动。在这个过程中,我们把A称作发起方,把B称作应答方或者是响应方。
例如,我们使用浏览器访问网易课堂,这个时候,浏览器就是发起方,网易课堂就是响应方。浏览器把请求的数据发送给网易课堂,网易课堂响应之后,把数据再发送给浏览器。
2. 数据虽然是在 A 和 B 之间传输,但并没有限制只有 A 和 B 这两个角色,允许中间有“中转”或者“接力”

也就是“A<===>B”也可以是:“A<=>X<=>Y<=>Z<=>B”。
只要不影响A到B之间的数据传输,就可以任意添加额外功能,比如说:安全认证,编码转换,数据压缩等等。 所以在这里,我们就可以了解HTTP的第二层含义了:HTTP是计算机世界中用于两点之间传输数据的约定和规范

超文本

所谓‘文本’就表示HTTP传输的不是像TCP/UDP那些底层协议所传输的二进制包,而是完整的,有意义的,我们能够看懂的,能够被浏览器服务器这样的设备处理的数据。
文本:主要包括文字,图片,音频,视频等等。
超文本:超越普通文本的数据,除了包含常见的文本数据以外,最重要的是包含超链接

所以我们可以给出HTTP的完整含义了:HTTP是计算机世界中专门用于两点之间传输的文字,图片,音频,视频,超链接等超文本内容的约定和规范。

HTTP不是什么?(HTTP不能做什么?)

1.HTTP不是互联网
互联网(Internet)是一个很大的国际网络。它上面有很多协议,比如说:超文本资源使用HTTP,普通文件使用FTP,电子邮件使用SMPT或者POP3.
2. HTTP 不是编程语言
HTTP 不是编程语言,但是可以用编程语言去实现它,使计算机能够通过HTTP与外界通信。
3. HTTP 不是 HTML
HTML是超文本资源的载体,是一种标记语言。而HTTP则是一种通信协议,只不过它传输的数据是超文本数据而已。

结束语

通过今天的学习,让我对HTTP是什么有了一个比较基础的认知。接下来,我将会通过不断的学习,去更加清楚深刻的了解HTTP的魅力。那么,下次见! 好好学习,天天向上!

image.png