首先我来问出这个问题:“你觉得 HTTP 是什么呢?”
你可能会不假思索、脱口而出:“HTTP 就是超文本传输协议,也就是HyperText Transfer Protocol。”
回答非常正确!我必须由衷地恭喜你:能给出这个答案,就表明你具有至少 50%HTTP 相关的知识储备,应该算得上是“半个专家”了。
不过让我们换个对话场景,假设不是我,而是由一位面试官问出刚才的问题呢?
显然,这个答案有点过于简单了,不能让他满意,他肯定会再追问你一些问题:
- 你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?
- 能否谈一下你对 HTTP 的认识?越多越好。
- HTTP 有什么特点?有什么优点和缺点?
- HTTP 下层都有哪些协议?是如何工作的?
- ……
几乎所有面试时问到的 HTTP 相关问题,都可以从这个最简单的“HTTP 是什么?”引出来。
所以,今天的话题就从这里开始,深度地解答一下“HTTP 是什么?”,以及延伸出来的第二个问题“HTTP 不是什么?”
HTTP 是什么
咱们中国有个成语“人如其名”,意思是一个人的性格和特点是与他的名字相符的。
先看一下 HTTP 的名字:“超文本传输协议”,它可以拆成三个部分,分别是:“超文本”“传输”和“协议”。我们从后往前来逐个解析,理解了这三个词,我们也就明白了什么是 HTTP。
首先,HTTP 是一个协议。不过,协议又是什么呢