02 | HTTP是什么?HTTP又不是什么?
HTTP 就是超文本传输协议,也就是 HyperText Transfer Protocol。
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
具体拆解可以从3个维度分析
- 协议就是一种约定和规范,由多人/计算机参与和共同遵守。既然是协议,也就意味着它是静态的,没有具体的实体,需要由参与方如浏览器,web服务器去实现。虽然参与方遵守相同的协议约定,但不同的理解和实现会产生差异,由此也会带来不同实现交互时的兼容性问题。
- 传输,是指HTTP的目的,典型的应用是基于请求响应模式,把消息从A点传送到B点。消息的传输是双向的,传输路径不限于A<->B 2点,还可以有中间节点,但本质上还是点到点的消息传输。传输中,可以通过头字段施加各种控制,比如接收端告诉发送端其期望接收的数据类型,编码方式,压缩方式,是否缓存等等。
- 超文本,是指有超链接的包含文字,图片,音频,视频的HTML文件,从而形成一种非线性,网状的文本结构。传输的数据类型也从早期的纯文本,拓展到任意格式的二进制文件。
课后作业
有一种流行的说法:“HTTP 是用于从互联网服务器传输超文本到本地浏览器的协议”,你认为这种说法对吗?对在哪里,又错在哪里?
- 从一般意义说是对的,因为它就是HTTP协议的一种典型应用。但此种说法又并不完备:
- 首先HTTP协议是双向的,客户端也可以传送数据到服务器。
- 其次参与HTTP的双方不限于浏览器,任意实现HTTP客户端功能的软件如curl,telnet,nghttp,wget等都可以,浏览器只是其中一种user-agent
你能再说出几个“HTTP 不是什么”吗?
- 不是一切非HTTP的东西。