文章目录
- 引言:
- 一、http的发展历程
- 二、什么是http
- 1.协议
- 2. 传输
- 3.超文本
- 三、和http相关的各种概念
- 1. 浏览器
- 2. WEB服务器
- 3. CDN
- CDN简介
- CDN的作用
- CDN的优势
- CDN在浏览器和服务器之间通信的作用
- 4. 爬虫
- 5. TCP/IP
- 6. DNS
- 7. URI/URL
- 8. HTTPS
- HTTP通信(比喻为两个人用不正常语言对话)
- HTTPS通信(比喻为两个人用火星文对话)
- 结束语:
引言:
当我们轻点鼠标,在网页间畅游,或者在移动设备上轻轻滑动屏幕,浏览着各种信息时,背后默默支撑这一切的,正是HTTP
——这个无处不在的超文本传输协议。HTTP
作为互联网通信的基石,经历了从诞生到发展的历程,不仅推动了网络技术的飞速进步,也深刻地影响了我们与世界的连接方式。
在本文中,我们将一起回顾HTTP
的发展历程,从最初的简单协议到如今的成熟标准,感受其不断演进的魅力。同时,我们将深入探讨HTTP
的基本概念,包括其作为协议的本质、传输数据的机制以及超文本的特性。这些概念将为我们理解HTTP
的工作原理和其在互联网中的作用奠定坚实的基础。
除了HTTP
本身,还有许多与之相关的技术组件和概念值得我们关注。浏览器作为我们访问网络的窗口,WEB
服务器作为存储和提供网页资源的中心,CDN
(内容分发网络)作为提升网络访问速度的关键技术,它们都在HTTP
通信中扮演着重要的角色。此外,爬虫技术用于自动抓取网络数据,TCP/IP
协议为网络通信提供基础,DNS
系统负责域名解析,URI/URL
定义了网络资源的地址,而HTTPS
则是HTTP
的安全版本,为我们提供了更加安全的通信方式。
通过本文的介绍,我们将全面了解HTTP及其相关技术组件的概念、作用和应用场景。让我们一同揭开HTTP
的神秘面纱,探索这个支撑着我们数字生活的强大协议背后的奥秘。
一、http的发展历程
版本 | 发布年份 | 关键特性 | 主要改进 |
---|---|---|---|
HTTP/0.9 | 1991 | - 只支持GET请求 - 无请求头或响应头,仅能请求简单的HTML文档 | - Web的基础协议 - 仅支持纯文本内容传输 |
HTTP/1.0 | 1996 | - 引入方法(GET、POST、HEAD) - 支持状态码、HTTP头 - 支持多种内容类型 | - 支持多种Web资源的传输 - 引入了HTTP头,允许传输元数据 - 增加了对字符集、多媒体文件的支持 |
HTTP/1.1 | 1997 | - 持久连接(默认复用TCP连接) - 分块传输编码 - 缓存控制 - 内容协商 - 更丰富的方法和状态码支持 | - 显著提升性能,减少了TCP连接的开销 - 引入了更细致的缓存控制机制,提高了Web资源的重用率 - 支持虚拟主机 |
HTTP/2 | 2015 | - 二进制帧 - 多路复用 - 头部压缩 - 服务器推送 - 更强的安全性要求(通常与TLS一起使用) | - 性能大幅提升,减少了延迟 - 改进了头部压缩,减少了开销 - 服务器推送优化了资源的加载 - 强化了安全性,推广了HTTPS的使用 |
HTTP/3 | 开发中 | - 基于QUIC协议(使用UDP) - 更快的连接建立 - 改进的拥塞控制 - 更好的多路复用 - 队头阻塞问题的解决方案 | - 解决了TCP协议的一些固有问题,如队头阻塞 - 进一步减少了连接建立时间 - 提供了更为可靠的传输,即使在网络条件变化时 |
二、什么是http
HTTP(超文本传输协议
)是一种用于分布式、协作式、超媒体信息系统的应用层协议
。它是Web技术的基础,允许用户获取如文本、图像、音频和视频
等资源。HTTP遵循客户端-服务器模型
,客户端打开一个连接以发出请求,然后等待直到收到服务器的响应。
主要特点包括:
- 无状态性:每次请求之间是独立的,服务器不会保存之前的交互信息。这意味着每个请求都必须包含所有必要的信息,服务器才能理解和响应。
- 可扩展性:HTTP允许传输任何类型的数据,只要双方都知道如何处理这些数据。
- 请求/响应模型:客户端发送一个请求到服务器,请求包含方法(如GET、POST等)、URI、协议版本、请求头和可能的消息体。服务器以状态码(如200 OK、404 Not Found)、响应头和自己的消息体响应。
这上面太官方了,可能说了也就是一个概念。下面我们拆解一下
超文本传输协议,可以拆解为超文本,传输,协议
1.协议
“协议”并不仅限于计算机世界,现实生活中也随处可见,例如刚毕业时会签“三方协议”,入职公司会签“保密协议”,这些协议本质上其实和http是相同的,那么“协议”有什么特点?
第一、协议必须要有两个或者多个参与者,也就是“协”
第二、协议是对参与者的一种行为约定和规范,也就是“议”
这也是http的第一层含义“协议”
http是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式
2. 传输
“传输”其实很好理解,就是把一堆东西从A点搬到B点,或者从B点搬到A点,即“A<====>B
”
为什么说是"A<====>B
",其实Http是一个“双向协议”,HTTP遵循客户端-服务器模型
我们就用上网来举例子,浏览器就是客户端A 请求方,网站就是B 应答方,双方约定用http协议来通信,于是浏览器把一些数据发送给网站,网站再把这些数据返回给浏览器,最后展现在屏幕上,你就可以看到新闻,视频了。
这就是http的第二层含义“传输”
http是一个在计算机世界里专门用来在两点之间传输数据的约定和规范
3.超文本
在计算机的世界里所谓的"文本“,就表示http
传输的不是TCP/UDP
这些底层协议里被切分的杂乱无章的二进制包,而是完整的有意义的数据,可以被浏览器、服务器这样的上层应用程序处理。
那么“超文本”,就是“超越了普通文本的文本”,它是文字、图片、音频和视频等的混合体
,最关键是有“超链接”,能从一个超文本跳跃到另一个超文本,形成复杂的非线性、网状的结构关系
那么到此我们用人话说说什么是http协议
http是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等的超文本数据的约定和规范
三、和http相关的各种概念
http不是一个孤立的协议,在互联网的世界,http
通常跑在TCP/IP
协议之上,依靠IP
协议实现寻址和路由,TCP
协议实现可靠数据传输、DNS
协议实现域名查找、SSL/TLS
协议实现安全通信。此外,还有一些协议依赖于HTTP,例如WebSocket,HTTPDNS
等。这些协议相互交织,构成了一个协议网,而HTTP则处于中心地位
下面我们一起来看看和http相关的各种概念
第一部分、http和浏览器、web服务器、爬虫、代理、CDN之间的联系