[TOC] >[success] # 什么HTTP [文章来源笔记](https://time.geekbang.org/column/article/98128) ~~~ 1.HTTP,又被称为超文本传输协议,是互联网上应用最为广泛的一种网络协议简称('超文本传输协议') ~~~ >[info] ## 具体理解 ~~~ 1.具体来理解这个'超文本传输协议',拆分成三部分'超文本' 、'传输'、'协议' ~~~ >[danger] ##### 协议 ~~~ 1.HTTP 是一个协议,首先需要有'两个或多个参与者','多个参与者为了达成某个共同的目的', '明确地规定各方的责任',如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机 之间才能相互通信交流 ~~~ >[danger] ##### 传输 ~~~ 1.'传输'就是把一堆东西从 A 点搬到 B 点,或者从 B 点搬到 A 点,即'AB',即HTTP是一个'传输协议' 2.首先先弄清'http' 是'双向协议',两个最基本的参与者 A 和 B,从 A 开始到 B 结束,数据在 A 和 B 之间双向而 不是单向流动,也就是如果A为浏览器请求方,B为服务器响应方,A访问B,B也会对这个访问返回一个响应 3.双向值得不单单是只用两个,我们也可以做成传接的形式,传输方式就从'A<===>B',变成了 'A<=>X<=>Y<=>Z<=>B',A 到 B 的传输过程中可以存在任意多个'中间人',而这些中间人也都遵从 HTTP 协议 ~~~ >[danger] ##### 超文本 ~~~ 1.'文本含义' :传统意义中的'文本'就是文字形成的内容文章,HTTP中的'文本'从早期互联网简单'文字'为代表,到现在 '图片'、'音频'、'视频'、'压缩包'都可以表示为HTTP的文本的含义 1.1 因此我们可以理解为HTTP 传输的不是 TCP/UDP 这些底层协议里被切分的杂乱无章的二进制包, 而是完整的、有意义的数据,可以被浏览器、服务器这样的上层应用程序处理。 2.'超文本':在文本的基础上含有了'超链接',能够从一个'超文本'跳跃到另一个'超文本',将各种不同空间的文字信息组织 在一起的网状文本 ~~~ * html 超文本标记语言 ~~~ 1.html 是我们前端最长打交道的一个内容,它本身只是纯文字文件,但内部用很多标签定义了对图片、音频、视频等的 链接,再经过浏览器的解释,呈现在我们面前的就是一个含有多种视听信息的页面。 ~~~ >[danger] ##### 有文章罗剑锋老师的话来解释HTTP ~~~ 1.比'超文本传输协议'更准的回答: 'HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范' ~~~ >[success] # HTTP 不是什么 ~~~ 1.'HTTP 不是互联网',他只是互联网众多协议的一种,只是互联网中的一部分 2.'HTTP 不是编程语言' 3.'HTTP 不是 HTML',HTML 是超文本的载体,是一种标记语言 4.'HTTP 不是一个孤立的协议': 在互联网世界里,HTTP 通常跑在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP 协议实现可靠数据传输、 DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。此外,还有一些协议依赖于 HTTP,例如 WebSocket、 HTTPDNS 等。这些协议相互交织,构成了一个协议网,而 HTTP 则处于中心地位。 ~~~