注:该文用于个人学习记录和知识交流,如有不足,欢迎指点。
DNS、HTTP已经在我前面的文章介绍过了,如果没了解的可以去看一看
Linux C/C++ 学习日记(7):DNS协议及用C语言发送报文实现查询指定域名的IP地址-优快云博客
Linux C/C++ 学习日记(8):http协议的介绍,及基于该协议实现数据拉取-优快云博客
一、URL
1. 为什么会有URL这种东西?
| 维度 | 具体内容 |
|---|---|
| URL 的定义 | 全称 Uniform Resource Locator(统一资源定位符),即 “网址”;本质是标准化的字符串,用于精准定位互联网上的资源(如网页、图片、文件),让浏览器、App 等工具能识别并获取资源。 |
| 诞生的核心原因 | 1. 早期地址格式不统一:不同服务器厂商(IBM、SUN 等)用不同方式表示资源位置,导致跨工具 / 跨系统无法通用; 2. 资源类型难区分:无统一标注资源类型的方式,工具无法确定用 HTTP、FTP 等哪种协议获取; 3. 用户记忆成本高:需手动输入 “IP + 端口 + 文件路径”,普通用户难以记住复杂信息。 |
| 解决的核心问题 | 1. 统一地址格式:规定 “协议 + 域名 + 端口 + 路径 + 查询参数” 的固定结构,所有工具和系统按同一规则识别,打破厂商壁垒; 2. 明确资源定位逻辑:通过 “协议” 标注资源类型(如 HTTP 对应网页、FTP 对应文件),通过 “路径 / 查询参数” 定位具体资源; 3. 降低记忆成本:用易记的 “域名” 替代 IP,默认隐藏常用端口(如 HTTPS 默认 443),用户只需记简单域名即可访问。 |
| 核心价值总结 | 作为 “互联网资源的通用地址”,解决了 “资源定位、工具识别、用户记忆” 三大痛点,是浏览器访问网页、App 加载数据的基础,支撑了现代互联网 |
2. URL的结构
| 结构组成 | 核心定义 | 示例内容 | 核心功能 | 关键技术细节 |
|---|---|---|---|---|
| 协议(Scheme) | 客户端(浏览器 / App)与服务器通信的 “规则标准”,规定数据传输格式、加密方式等 | https | 1. 决定数据是否加密( 2. 明确客户端与服务器的交互逻辑(如请求格式、响应格式)。 | 1. 常见协议: 2. 协议后必须跟 |
| 域名(Domain) | 服务器的 “网络标识名称”,用于替代难记的 IP 地址,方便用户记忆和访问 | www.baidu.com | 1. 作为服务器的 “人类可读地址”,避免用户记忆 IP(如 2. 通过 DNS 解析可转换为服务器的实际 IP,实现对服务器的定位。 | 1. 域名结构:通常由 “主机名 + 顶级域名” 组成(如 2. 一个域名可对应多个 IP(负载均衡),一个 IP 也可对应多个域名(虚拟主机)。 |
| 端口(Port) | 服务器上 “不同服务的入口编号”,用于区分同一服务器上的不同服务(如网页服务、文件服务) | 默认443(隐藏),完整写法:443 | 1. 明确客户端要访问服务器的 “具体服务”(如 443 端口对应 HTTPS 服务,80 端口对应 HTTP 服务); 2. 避免同一服务器上的不同服务冲突(如同时开启网页服务和文件服务,用不同端口区分)。 | 1. 端口号范围:0-65535,其中 0-1023 是 “知名端口”(由 IANA 分配,如 80、443),1024-49151 是 “注册端口”(应用专用); 2. 若使用默认端口(如 HTTPS 用 443),URL 中可省略不写;非默认端口必须手动添加(如 |
| 路径(Path) | 服务器上 “具体资源的目录或文件路径”,用于定位服务器内部的某个资源 | /s | 1. 相当于服务器的 “文件系统路径”,告诉服务器 “要获取哪个目录下的哪个资源”; 2. 示例中 | 1. 路径以 2. 若路径为 |
| 查询参数(Query) | 客户端向服务器传递的 “额外请求信息”,用于动态筛选或指定资源内容 | ?wd=HTTP&tn=SE_PcZhidaoBatchRec | 1. 向服务器传递用户需求(如 2. 实现 “同一路径返回不同内容”(如同一搜索页面,不同关键词返回不同结果)。 | 1. 格式规则:以 2. 参数值若含特殊字符(如空格、中文),会自动进行 “URL 编码”(如空格编码为 |
二、URL、DNS、HTTP三者的关系
| 维度 | URL(统一资源定位符) | DNS(域名系统) | HTTP(超文本传输协议) | 三者协作逻辑 |
|---|---|---|---|---|
| 核心角色 | 资源 “地址提供者” | 域名 “翻译官” | 资源 “运输规则制定者” | 遵循 “定位→解析→传输” 流程:URL 定位资源→DNS 解析地址→HTTP 传输资源,形成完整访问链路 |
| 核心功能 | 提供资源的完整地址(协议 + 域名 + 端口 + 路径 + 查询参数),明确 “要访问什么资源” | 将 URL 中的域名(如www.baidu.com)翻译成服务器 IP(如 180.101.50.242),解决 “资源在哪里” | 按 URL 定位的地址,通过标准化规则(请求 / 响应格式)传输资源,负责 “如何获取资源” | URL 是基础(给目标),DNS 是桥梁(转地址),HTTP 是手段(传资源),三者缺一不可 |
| 本质属性 | 静态的 “资源地址字符串” | 动态的 “域名 - IP 映射工具” | 动态的 “数据传输规则标准” | - |
| 协作流程(示例) | 1. 用户输入https://www.baidu.com/s?wd=HTTP(URL),明确目标是 “百度搜索 HTTP 关键词的资源” | 2. 浏览器向 DNS 服务器发送请求,将www.baidu.com解析为 IP(如 180.101.50.242) | 3. 浏览器通过 HTTP 协议向该 IP 发送请求,服务器返回搜索结果,再通过 HTTP 传输回浏览器 | 三步依次执行,前一步的结果是后一步的前提(无 URL 则 DNS 无解析对象,无 IP 则 HTTP 无连接目标) |
| 类比说明(寄快递) | 快递面单:写清 “收件地址(域名 + 路径)、运输方式(协议)”,明确寄件目标 | 地址翻译器:把 “XX 路 XX 号(域名)” 翻译成 “门牌号编号(IP)”,方便快递员识别 | 快递运输规则:规定打包标准(请求格式)、运输流程(数据传输)、签收方式(响应处理) | 面单(URL)给目标,翻译器(DNS)转地址,运输规则(HTTP)保送达,共同完成寄件(资源访问) |
| 关键依赖关系 | 1. 是 DNS 解析的 “输入源”(无 URL 则 DNS 无域名可解析) 2. 是 HTTP 传输的 “目标地址”(无 URL 则 HTTP 不知传输什么资源) | 1. 依赖 URL 中的域名才能工作(无域名则 DNS 无用) 2. 解析结果(IP)是 HTTP 建立连接的前提(无 IP 则 HTTP 无法找到服务器) | 1. 依赖 URL 的目标信息(IP + 路径)(无目标则 HTTP 无传输方向) 2. 依赖 DNS 解析的 IP(无 IP 则 HTTP 无法连接服务器) | 三者形成 “URL→DNS→HTTP” 的依赖链,任一环节缺失,均无法完成互联网资源访问 |
| 常见误区提醒 | ❌ 误区:URL=HTTP ✅ 纠正:URL 是地址,HTTP 是传输规则;URL 可搭配 FTP 等其他协议(如 | ❌ 误区:DNS 能直接定位资源 ✅ 纠正:DNS 仅负责 “域名→IP” 翻译,无法定位具体资源(需结合 URL 的路径 / 查询参数) | ❌ 误区:HTTP 可独立获取资源✅ 纠正:HTTP 需先知道资源地址(来自 URL+DNS 解析),否则无法传输 | 三者是不同维度的工具,功能不可替代,需协同工作 |
总结:
DNS、URL、HTTP 的关系可简化为:URL 给 “目标”,DNS 转 “地址”,HTTP 跑 “运输”。没有 URL,就没有明确的访问目标;没有 DNS,就找不到服务器的具体位置;没有 HTTP,就无法把资源从服务器传输到客户端 —— 三者共同支撑了 “输入网址→看到网页” 的完整体验。
要不要我帮你补充一份 “三者协作异常的常见场景(如 DNS 解析失败、HTTP 请求错误)及排查方法表”,方便你应对实际访问问题?
三、浏览器、搜索引擎
1.浏览器
1.1 在没有浏览器之前人们是主要是通过什么获取信息的呢?
| 工具类型 | 核心作用 | 操作方式示例 | 局限性 |
|---|---|---|---|
| 1. Telnet(远程终端协议) | 让用户通过本地电脑 “远程登录” 到服务器,直接操作服务器上的文件或程序 | 1. 在本地命令行输入 2. 输入服务器的账号密码登录; 3. 用 | - 只能显示纯文本,没有图片、视频等可视化内容; - 操作全靠指令,记不住指令就无法使用; - 安全性低,数据传输不加密。 |
| 2. FTP(文件传输协议) | 专门用于在不同电脑间传输文件(如文档、程序安装包) | 1. 使用专用 FTP 客户端(如早期的 CuteFTP 雏形),或命令行输入 2. 登录后,用 3. 部分公开服务器支持 “匿名登录”(无需账号密码),可直接下载公开文件。 | - 仅能传输文件,无法 “浏览内容”(比如想预览文档内容,必须先下载到本地); - 没有 “链接跳转” 功能,想换个服务器,必须重新输入新地址。 |
| 3. Gopher(菜单式信息系统) | 用 “层级菜单” 组织服务器上的文件和信息,比命令行更直观一点 | 1. 打开 Gopher 客户端,输入服务器地址(如 3. 输入菜单编号(如 “1”),即可查看对应分类下的文件列表,再选择下载。 | - 仍以纯文本为主,最多支持简单的文字排版; - 不同服务器的菜单格式不统一,换个服务器就要重新适应; - 无法跨服务器 “跳转”,每个服务器都是独立的 “信息孤岛”。 |
1.2 浏览器的诞生
| 维度 | 具体内容 |
|---|---|
| 一、浏览器的定义 | 1. 本质:用于访问互联网资源的应用软件 2. 核心功能: - 解析渲染:将服务器传输的 HTML、CSS、JavaScript 等代码,转化为用户可直观查看的可视化网页(含文字、图片、视频等) - 网络请求:通过 HTTP/HTTPS 等协议,向服务器发起资源请求(如网页、文件),并接收返回内容 3. 常见示例:谷歌 Chrome、微软 Edge、Mozilla Firefox |
| 二、诞生的核心原因 | 源于 1990 年代初互联网 “内容交互需求升级”,旧有工具(FTP、Telnet)无法满足超文本与万维网(WWW)的使用需求,核心痛点有 3 个: 1. 无超文本代码解析工具:超文本用 HTML 代码编写(如 2. 无资源可视化交互能力:超文本需 “点击链接跳转、加载图片视频、提交表单” 等交互,但 FTP/Telnet 仅能传输静态文件 / 文本,无法实现交互(如需手动输入新地址才能跳转网页) 3. 普通用户操作门槛高:访问资源需手动输入完整 URL(如 |
| 三、解决的核心问题 | 浏览器通过 “解析渲染 + 简化操作”,攻克早期痛点,让互联网从 “科研工具” 变为 “大众服务”: 1. 解决超文本代码可视化问题:能解析 HTML(结构)、CSS(样式)、JavaScript(交互)代码,将其转化为图文界面(如把 2. 解决资源交互能力缺失问题:原生支持超文本交互需求: - 点击 - 加载网页时,自动请求图片、视频等附属资源- 支持表单输入(如搜索框),用户提交后自动向服务器发数据(如百度搜索无需手动写请求指令) 3. 解决普通用户操作门槛高问题:隐藏复杂技术细节,降低操作成本: - 支持域名访问:输入 - 自动补全协议 / 端口:默认用 HTTP/HTTPS,自动匹配 80/443 默认端口,无需手动输入 - 提供便捷功能:地址栏、书签、前进后退(如书签保存常用网址,点击即可访问),让浏览像 “翻书” 一样简单 |
| 四、核心价值总结 | 浏览器是 “连接用户与万维网的核心桥梁”,核心价值是 **“把复杂的互联网技术转化为普通人能轻松使用的可视化工具”**:无浏览器时,用户需面对代码、IP、协议等技术细节;有浏览器后,仅需输入网址、点击链接,就能逛遍互联网 |
2. 搜索引擎
2.1 定义
| 维度 | 具体内容 |
|---|---|
| 一、搜索引擎的定义 | 1. 本质属性:一种基于互联网的信息检索系统,核心是 “帮助用户快速定位所需信息”; 2. 核心工作流程: - 信息采集:通过 “网络爬虫” 主动抓取互联网中的网页、文件等信息; - 信息存储:对抓取的信息进行自动索引(提取关键词、分类整理),存储到大型检索数据库; - 信息检索:接收用户的查询指令(如关键词),在数据库中匹配相关信息;- 结果返回:通过排序算法对匹配结果排序,将最符合需求的信息(含资源网址)呈现给用户; 3. 核心功能:连接用户与互联网信息,提供 “查询 - 匹配 - 返回” 的一站式信息检索服务。 |
| 二、搜索引擎诞生的原因 | 源于 “互联网信息爆炸与用户查找效率的矛盾”,核心痛点为 “信息太多,找不到”: 1. 信息规模激增:随着互联网发展,全球网页数量突破数十亿且持续增长,形成庞大的 “信息海洋”; 2. 用户查找困难:在海量信息中,用户若想直接找到目标内容(如某篇文章、某个知识点),需逐个访问网站、手动筛选,如同 “大海捞针”,耗时且效率极低; 3. 需求催生工具:为解决 “信息过载” 导致的查找难题,搜索引擎应运而生,旨在通过技术手段降低信息获取门槛,帮用户快速、精准找到所需内容。 |
| 三、搜索引擎解决的核心问题 | 1. 提高信息获取效率: - 通过 “索引数据库” 和 “高效检索算法”,将原本需数小时甚至数天的手动查找,缩短至毫秒级; - 无需用户逐个浏览网站,输入关键词即可快速匹配结果,大幅减少时间成本; 2. 实现精准信息定位: - 基于复杂排序算法(如网页相关性、权威性、用户体验),对检索结果按 “匹配度” 排序,将最符合用户需求的信息排在前列; - 支持关键词细化(如 “2024 北京旅游攻略”),进一步缩小结果范围,避免无效信息干扰; 3. 整合和组织信息: - 打破信息壁垒,将来自不同网站、不同类型的信息(如新闻、视频、文档)整合到统一界面; - 以标准化格式呈现结果(如标题、摘要、链接),提供 “一站式检索”,用户无需在多个平台间切换,简化信息获取流程。 |
2.2 构造
| 核心模块 | 角色定位 | 具体工作内容 | 在系统中的核心作用 | 类比(以 “数字化图书馆” 为例) |
|---|---|---|---|---|
| 网络爬虫(Spider) | 信息采集员 | 1. 从 “种子 URL”(如知名网站首页)出发,自动遍历互联网网页; 2. 抓取网页的 HTML 代码、文字、图片等资源,记录网页更新时间; 3. 遵循 “robots 协议”(网站设置的抓取规则),不抓取禁止访问的页面; 4. 定期重新抓取已收录网页,确保信息时效性(如新闻类网页抓取频率高)。 | 为搜索引擎提供 “原始信息来源”,没有爬虫,后续的索引和查询都无数据可用。 | 图书馆的 “图书采购员”:去各地书店 / 出版社搜集新书,带回图书馆。 |
| 索引数据库(Index DB) | 信息分类与存储库 | 1. 对爬虫抓取的网页内容进行 “预处理”:提取标题、关键词、正文摘要、网页链接等核心信息; 2. 按 “关键词倒排索引”(如 “HTTP” 关键词对应所有包含该词的网页链接)组织数据,大幅提升后续查询速度; 3. 对网页质量进行初步评估(如内容原创度、链接权威性),为排序提供基础数据。 | 将 “无序的原始信息” 转化为 “有序的可查数据”,是快速响应查询的关键。 | 图书馆的 “图书分类架”:把新书按学科(如计算机、文学)、主题(如 HTTP、小说)分类编号,方便后续查找。 |
| 查询处理器(Query Processor) | 用户需求翻译官 | 1. 接收用户输入的关键词(如 “北京 明天 天气”),进行 “纠错处理”(如把 “天汽” 修正为 “天气”); 2. 进行 “语义理解”:拆分关键词逻辑(如 “北京” 是地点、“明天” 是时间、“天气” 是核心需求),补充相关词(如 “气温”“降水概率”); 3. 将处理后的 “结构化需求”(如 “地点:北京,时间:明天,类型:天气”)传递给索引数据库,触发查询。 | 准确理解用户真实需求,避免因关键词模糊或错误导致查询结果偏差。 | 图书馆的 “咨询台工作人员”:听读者说 “想找明天北京天气的书”,明确需求是 “北京地区、次日、气象类信息”。 |
| 排序算法(Ranking Algorithm) | 信息筛选与排序员 | 1. 从索引数据库中匹配出 “与用户需求相关的网页”(如包含 “北京”“明天”“天气” 关键词的网页); 2. 按核心算法(如百度的 “百度搜索算法”、谷歌的 “PageRank”)对相关网页打分,评分维度包括: - 内容相关性(关键词在网页中的位置、频率); - 网页权威性(外部高质量链接数量); - 用户体验(网页加载速度、是否适配移动端); 3. 按评分从高到低排序,确定最终展示给用户的结果顺序。 | 从 “相关网页” 中筛选出 “最符合用户需求的优质内容”,决定用户看到的结果优先级。 | 图书馆的 “推荐专员”:从分类架中找出所有 “北京天气相关的书”,再按 “新书、权威作者、读者好评” 排序,把最好的几本放最前面。 |
| 用户交互界面(UI) | 信息展示与操作窗口 | 1. 提供 “搜索输入框”,支持文字、语音、图片等多种输入方式; 2. 按排序结果展示网页链接、标题、摘要、发布时间等信息,标注 “官方”“广告” 等标签; 3. 提供 “筛选工具”(如时间筛选 “近 1 周”、类型筛选 “新闻 / 视频”),方便用户进一步缩小结果范围; 4. 接收用户点击操作,跳转至目标网页。 | 连接 “用户” 与 “搜索引擎后台系统”,是用户直观操作和获取结果的唯一入口。 | 图书馆的 “借阅窗口”:把排好序的书列表展示给读者,标注 “新书”“推荐” 标签,读者选书后帮忙取出。 |
3. 两者的区别和联系
3.1 区别
| 对比维度 | 浏览器(如 Chrome、Edge) | 搜索引擎(如百度、谷歌) |
|---|---|---|
| 核心定位 | 「资源访问工具」:负责 “获取并展示资源”,是用户与网页的 “交互窗口” | 「资源检索服务」:负责 “筛选并推荐资源”,是用户与海量信息的 “连接桥梁” |
| 本质属性 | 独立的应用软件:需下载安装,有自己的运行程序和界面 | 依赖载体的网络服务:没有独立软件,需通过浏览器 / App 才能使用 |
| 核心功能 | 1. 解析渲染:把 HTML、CSS 代码转成可视化网页(图文、视频); 2. 发起请求:用 HTTP/HTTPS 向服务器要资源; 3. 辅助功能:书签、下载、插件扩展等 | 1. 爬取索引:用爬虫抓网页,建索引库; 2. 响应查询:按关键词筛选资源并排序; 3. 结果展示:提供搜索结果列表(含链接、摘要) |
| 用户操作逻辑 | 两种方式: 1. 直接输 URL(如 2. 打开搜索引擎链接,跳转后展示网页 | 一种方式:输关键词(如 “2024 电影推荐”),获取相关资源的链接,无法直接展示网页内容 |
| 没有它会怎样 | 无法看到任何网页内容 —— 即使找到资源链接,也无法解析渲染成可视化界面 | 无法快速找资源 —— 想访问网页,必须记住完整 URL,如同 “没地图找地址” |
3.2 联系
| 维度 | 具体内容 |
|---|---|
| 一、核心协作流程(3 步实现 “找资源→看资源”) | 两者为 “上下游依赖关系”,需通过 3 个步骤协同,才能完成从 “有需求” 到 “见内容” 的全流程: 步骤 1:搜索引擎 “找资源”—— 定位目标 - 操作:用户打开浏览器,在地址栏输入搜索引擎网址(如 - 分工:搜索引擎从自身索引库中,筛选出含 “猫咪图片” 的网页链接,以 “标题 + 摘要 + 链接” 的形式,在浏览器中展示结果列表; - 类比:如同用美食 App 搜索 “附近奶茶店”,App 给出店铺地址列表。 步骤 2:浏览器 “接资源”—— 建立连接 - 操作:用户点击搜索结果中的某条链接(如 - 分工:浏览器接收该 URL 后,自动触发两个动作: ① 通过 DNS 将 URL 中的域名( ② 基于 HTTP 协议,向该 IP 的服务器发送 “获取猫咪图片网页” 的请求; - 类比:如同按奶茶店地址,用导航软件找到店铺所在街道。 步骤 3:浏览器 “展资源”—— 可视化呈现 - 操作:服务器接收请求后,返回该网页的 HTML、CSS、JavaScript 代码; - 分工:浏览器解析代码,将其转化为含图片、文字的可视化界面(即用户看到的猫咪图片网页); - 类比:如同走进奶茶店,看到店内的菜单和环境。 |
| 二、关键误区:“浏览器内置搜索”≠功能融合 | 1. 误区表现:看到 Chrome、Edge 等浏览器支持 “直接在地址栏输关键词(如 “天气”)搜索”,误以为浏览器和搜索引擎 “合为一体”,功能无区分; 2. 真相拆解:这是 “浏览器内置搜索引擎调用入口”,核心功能仍完全分离,背后逻辑为: 3. 核心区别:搜索引擎始终负责 “筛选结果”,浏览器负责 “发起搜索请求 + 展示结果 + 渲染网页”,没有搜索引擎,浏览器无法生成搜索结果;没有浏览器,搜索引擎的结果无法被用户查看和交互。 |
3.3 先有的浏览器,后有的搜索引擎。
世界上第一个 Web 浏览器是 1990 年由伯纳斯 - 李开发的 “WorldWideWeb”(后更名为 Nexus)。
而最早的搜索引擎是 1990 年由加拿大蒙特利尔的麦吉尔大学学生 Alan Emtage、Peter Deutsch、Bill Wheelan 发明的 Archie,它主要用于自动索引互联网上匿名 FTP 网站文件。虽然 Archie 与现代搜索引擎的功能和形式有所不同,但它被认为是搜索引擎的先驱。
从严格意义上来说,1994 年 4 月 20 日正式亮相的 WebCrawler 是互联网上第一个支持搜索文件全部文字的全文搜索引擎。所以浏览器的出现时间要早于搜索引擎。
四、浏览器搜索的底层逻辑
从输入 “哔哩哔哩” 到进入网站:全流程技术步骤拆解:
整个过程是 “用户需求→工具协作→技术交互→画面呈现” 的闭环:
关键词(用户)→搜索引擎(找 URL)→超链接(触发 URL)→DNS(转 IP)→TCP(建通道)→HTTP(传资源)→浏览器(渲染画面)。
每个环节环环相扣,最终实现 “输入名字就能进入网站” 的便捷体验。
| 步骤 | 参与角色 | 具体操作与技术细节 | 核心目标 |
|---|---|---|---|
| 1 | 用户 + 浏览器 | 1. 用户打开浏览器(如 Chrome),点击地址栏; 2. 输入关键词 “哔哩哔哩”,按下回车键; 3. 浏览器判断 “哔哩哔哩” 非完整 URL,自动调用默认搜索引擎(如百度)。 | 发起 “找哔哩哔哩网站” 的需求,触发搜索引擎调用 |
| 2 | 浏览器 + 搜索引擎 | 1. 浏览器向搜索引擎发送 “关键词 = 哔哩哔哩” 的请求; 2. 搜索引擎筛选结果并排序(B 站官网排前 1); 3. 搜索引擎返回含 B 站官网 URL( 4. 浏览器渲染搜索结果页,展示带超链接的条目。 | 通过搜索引擎获取 “哔哩哔哩官网的 URL”,并以超链接形式呈现在结果页 |
| 3 | 用户 + 浏览器 + 超链接 | 1. 用户点击 “哔哩哔哩官网” 超链接; 2. 浏览器解析超链接对应的 URL,提取协议(HTTPS)、域名( | 触发 “访问 B 站官网” 的动作,解析超链接对应的完整 URL |
| 4 | 浏览器 + DNS | 1. 浏览器向本地 DNS 服务器发送 “解析 2. DNS 服务器逐层查询,返回 B 站服务器 IP(如 3. 浏览器缓存该 IP。 | 将 “易记的域名” 转化为 “网络能识别的 IP”,确定要连接的 B 站服务器地址 |
| 5 | 浏览器 + B 站服务器 + TCP+HTTPS | 1. 浏览器基于 HTTPS,向 B 站服务器 443 端口发起TCP 三次握手,建立连接: - 第一次:浏览器发 “连接请求”(SYN 包); - 第二次:服务器回 “同意连接”(SYN+ACK 包); - 第三次:浏览器发 “确认连接”(ACK 包); 2. TCP 连接建立后,双方通过 SSL/TLS 协议完成加密协商(生成会话密钥),后续数据传输均加密。 | 建立浏览器与 B 站服务器的 “稳定数据传输通道”,为后续 HTTP 请求做准备 |
| 6 | 浏览器 + B 站服务器 + HTTP | 1. 浏览器通过 TCP 通道,向 B 站服务器发送HTTPS 加密的 HTTP GET 请求,请求 “获取官网首页资源”; 2. B 站服务器接收请求,查询首页资源(HTML、CSS、JS、图片等),生成 HTTP 响应(状态码 200 OK); 3. 服务器通过 TCP 通道,将加密的响应数据分批传给浏览器; 4. 浏览器接收完所有资源数据后,向服务器发送 “数据已接收完成” 的信号。 | 完成 “浏览器请求资源→服务器返回资源” 的核心交互,获取 B 站首页的原始代码和文件 |
| 7 | 浏览器 + HTML/CSS/JS | 1. 浏览器解析资源: - 解析 HTML 生成 DOM 树(网页结构); - 解析 CSS 生成 CSSOM 树(样式); - 合并为渲染树,计算元素位置与样式; 2. 浏览器 “绘制” 页面,加载图片 / 视频,执行 JS 实现动态效果(如导航动画)。 | 将 “服务器返回的代码和文件” 转化为 “用户能看到的可视化画面” |
| 8 | 用户 + 浏览器 | 1. 浏览器展示完整的 B 站首页(导航栏、推荐视频、热门榜单等); 2. 用户可正常操作(如点击视频、登录),操作会触发新的 TCP 连接与 HTTP 请求(如点击视频时请求播放资源)。 | 完成 “从输入关键词到看到 B 站首页” 的全流程,用户可正常使用 B 站功能 |
| 9 | 浏览器 + B 站服务器 + TCP | 1. 当 “首页资源传输完成” 且 “短期内无新请求”(如用户停留在首页不操作),双方触发TCP 四次挥手,断开连接: - 第一次:浏览器发 “断开请求”(FIN 包),表示 “我这边数据发完了”; - 第二次:服务器回 “确认收到断开请求”(ACK 包),表示 “我知道了,等我处理完剩余数据”; - 第三次:服务器发 “我这边数据也发完了,同意断开”(FIN+ACK 包); - 第四次:浏览器回 “确认断开”(ACK 包),双方连接正式关闭; 2. 若用户快速操作(如 10 秒内点击视频),浏览器会复用现有 TCP 连接(避免重复握手,提升效率),暂不断开。 | 释放闲置的 TCP 连接资源,避免服务器与浏览器的资源浪费 |
关键说明:TCP 断开的核心逻辑
-
断开时机:并非 “页面加载完就立刻断开”,而是等 “当前请求的数据传输完成” 且 “短期内无新请求”(浏览器通常默认闲置几秒到几十秒),才触发四次挥手;
-
资源优化:若用户持续操作(如连续点击链接),浏览器会复用已建立的 TCP 连接(“连接复用”),减少重复握手的时间,让后续访问更快;
-
强制断开:若网络中断或服务器超时,TCP 会通过 “超时重传” 机制检测异常,若多次重传失败,会强制断开连接。
五、感悟互联网通信的发展
| 时间阶段 | 核心事件 / 技术 | 关键人物 / 团队 | 技术特点与作用 | 对互联网通信的影响 |
|---|---|---|---|---|
| 1960s-1970s:互联网雏形阶段 | 1. ARPANET(阿帕网)诞生2. 分组交换技术应用 | 美国国防部高级研究计划局(ARPA)、保罗・巴兰(分组交换提出者) | 1. ARPANET:1969 年连接 4 台大学计算机,全球首个分组交换网络,核心是 “去中心化”(部分节点损坏不影响通信); 2. 分组交换:将数据分割成 “小数据包” 传输,提升网络抗故障能力与资源利用率。 | 奠定互联网 “分布式通信” 底层基础,打破传统 “电路交换”(如电话网)局限,为后续 TCP/IP、HTTP 等协议提供网络环境。 |
| 1970s-1980s:协议标准确立阶段 | 1. TCP/IP 协议诞生2. UDP 协议同步发展 | 文顿・瑟夫、罗伯特・卡恩(TCP/IP 发明者) | 1. TCP:面向连接协议,通过 “三次握手建连→数据校验→四次挥手断连”,保证数据可靠传输(如文件下载); 2. UDP:无连接协议,无需建连、传输速度快,适合实时场景(如视频通话、游戏); 3. 1983 年 TCP/IP 成为 ARPANET 标准,实现 “不同网络互联互通”。 | 解决 “跨网络、跨设备通信” 问题,成为互联网的 “通用语言”,为 HTTP 的 “客户端 - 服务器数据传输” 提供底层连接支撑。 |
| 1980s-1990s:应用层技术体系搭建阶段 | 1. DNS(域名系统)诞生 2. HTTP(超文本传输协议)发明 3. URL(统一资源定位符)提出4. 万维网(WWW)发布 | 保罗・莫卡派乔斯(DNS)、蒂姆・伯纳斯 - 李(HTTP/URL/ 万维网) | 1. DNS(1983 年):将 “IP 地址”(如 183.232.231.172)转化为 “域名”(如www.bilibili.com),简化地址记忆; 2. HTTP(1989 年):应用层协议,定义 “浏览器(客户端)向服务器请求超文本资源” 的规则(如 GET 请求获取网页、POST 请求提交数据),默认基于 TCP 传输; 3. URL(1989 年):统一资源地址格式(如 4. 万维网:基于 HTTP+HTML+URL,实现 “图文混排 + 超链接跳转”,构建可交互信息网络。 | 1. 搭建 “资源定位 - 传输 - 展示” 完整体系:DNS 定位服务器、URL 定位资源、HTTP 传输数据,三者配合让 “获取互联网资源” 有了标准流程; 2. 万维网依托 HTTP 与 URL,打破 “纯文本通信” 局限,为浏览器和搜索引擎的出现提供核心技术框架。 |
| 1990s:用户工具普及阶段 | 1. 首款浏览器诞生 2. 首款搜索引擎出现 3. HTTP/1.0(1996 年)、HTTP/1.1(1999 年)发布 | 蒂姆・伯纳斯 - 李(浏览器)、艾伦・埃姆泰奇(搜索引擎)、W3C(HTTP 标准制定) | 1. 浏览器(1990 年 “WorldWideWeb”、1993 年 Mosaic):核心能力是 “解析 URL→通过 HTTP 向服务器发请求→接收资源后渲染 HTML/CSS/JS 为可视化网页”,隐藏技术细节,让普通用户可操作; 2. 搜索引擎(1990 年 “Archie”、1994 年 “WebCrawler”):通过 “爬虫抓取 URL 对应的 HTTP 资源→索引存储→关键词检索”,帮用户从海量资源中找目标 URL; 3. HTTP 升级:HTTP/1.0 支持 “短连接”,HTTP/1.1 支持 “长连接”,提升资源传输效率。 | 1. 浏览器 + 搜索引擎让互联网 “从技术圈走向大众”:用户通过搜索引擎找 URL,再用浏览器通过 HTTP 加载资源,形成核心使用模式; 2. HTTP 升级优化传输体验,支撑更多网页内容(如图片、脚本)的加载,推动互联网信息丰富化。 |
| 2000s - 至今:高速与移动化发展阶段 | 1. 移动互联网兴起 2. HTTPS 普及、HTTP/2(2015 年)、HTTP/3(2022 年)发布 3. 5G、IPv6 落地 | 苹果(iPhone)、W3C、IETF(协议制定) | 1. 移动互联网(2007 年 iPhone 发布):浏览器适配移动端,HTTP 请求支持 “轻量化资源”(如适配手机屏幕的网页),URL 支持 “App 深链接”(直接跳转 App 内资源); 2. HTTP 技术升级: - HTTPS:在 HTTP 基础上增加 SSL/TLS 加密,保障数据传输安全(如登录、支付场景); - HTTP/2:支持 “多路复用”(一个 TCP 连接传输多个 HTTP 请求),提升加载速度; - HTTP/3:基于 UDP 实现,解决 TCP 队头阻塞问题,进一步降低延迟; 3. 5G+IPv6:5G 加速 HTTP 资源加载,IPv6 解决 IP 枯竭,支撑更多设备通过 HTTP 访问资源。 | 1. 移动互联网 + HTTP 升级,实现 “随时随地、安全高速” 访问:用户在手机上通过搜索引擎找 URL,浏览器用 HTTPS/HTTP/2 快速加载资源,体验大幅提升; 2. 新技术支撑复杂场景:HTTP/3+5G 满足视频流、云游戏、物联网等低延迟需求,推动互联网从 “信息浏览” 向 “沉浸式交互” 升级。 |
由此,可以总结出:
互联网通信演进围绕 “降低门槛、提升效率、拓展场景” 展开,以 “底层连接→应用层协议→地址定位→用户工具” 为递进路径,最终形成 “人人可用、万物可连” 的生态。
| 演进维度 | 核心逻辑与关键技术 | 解决的核心问题 |
|---|---|---|
| 1. 目标导向(三大核心) | - 解决 “能不能连”:靠 ARPANET(去中心化基础)、TCP/IP(互联互通协议)搭建通信骨架; - 解决 “好不好用”:靠 DNS(简化地址)、浏览器(可视化浏览)降低使用门槛; - 解决 “用得爽不爽”:靠搜索引擎(高效找资源)、移动互联网(随时随地访问)优化体验; - 技术补充:UDP 适配实时场景、HTTP/3 提升速度。 | 从 “能连” 到 “好用” 再到 “爽用” |
| 2. 技术递进(四层路径) | - 底层连接:TCP(可靠传输)、UDP(低延迟)为 HTTP 提供通道; - 应用层协议:HTTP(含 HTTPS/HTTP/2/3)是核心枢纽,规范资源请求响应; - 地址定位:DNS(解析域名)+ URL(明确资源位置),为 HTTP 提供定位依据; - 用户工具:浏览器(用 HTTP 加载资源)+ 搜索引擎(找 URL),让技术落地体验; - 技术升级:HTTP 版本迭代、URL 支持深链接,持续提效、降门槛、保安全。 | 从技术底层到用户体验落地 |
:在浏览器上搜索信息的底层逻辑:(URL、DNS、HTTP、浏览器、搜索引擎)&spm=1001.2101.3001.5002&articleId=152010098&d=1&t=3&u=249e1e230595497dba2936fbde2fbd2a)

被折叠的 条评论
为什么被折叠?



