速成课 · No. 14
每一次页面加载,机器之间都在进行一场快速而精确的对话:找到彼此的地址,开通一条线路,提出一个问题,再把答案封进一个别人都读不到的信封里。这一切都不是魔法——它只是几个清晰的想法,顶着吓人的名字。学会这些名字,整个 Web 就变得读得懂了。
21 个概念 · 每个都有图 · 结尾有速查表
剥掉术语,网络就是一件简单的事:机器互相发送消息。其余的一切,都是关于这些消息如何找到去路、又如何保持可靠的细节。
地图:六组里的 21 个概念
一张地铁图:先看整条线路,再一站一站地坐过去。
这门课里的每个词都属于六个组之一。每一组就是对话的一步:基础(谁和谁说话)、名称(怎么找到地址)、连接(怎么开通一条线路)、HTTP(提问用的语言)、HTTPS(怎么把它封起来)和速度(为什么会变慢)。
怎么读每个概念
一本护照:每个人的栏目都一样,所以很容易比较。
下面每个概念都有相同的部分:它的英文名称(记住它 —— 这是你在文档里会碰到的术语)、一幅日常生活的画面、一张图,以及一张带栏目的卡片:是什么、怎么运作、例子、坑和关联的概念。最后一章里,所有的词会汇成一次点击 —— 从地址栏到完成的页面。
Packet —— 数据分成小块上路
一套庞大的邮政系统:任何一栋楼都能给任何另一栋楼递一张纸条,只要它在信封上写对地址。
网络不过是连在一起、能互相发送数据的计算机。数据以小小的数据包(packet)形式传输 —— 就像把一张纸条拆成几张明信片,每张都标明从哪来、到哪去。互联网就是把这件事放大到全球规模:数十亿台机器,任何一台都能把数据包传给另一台。这就是全部的基础;其余的是我们如何让它变得可靠、有意义。
- 是什么
- 一小块数据,标着“从哪来”和“到哪去”。
- 怎么运作
- 大消息被切成数据包;每个包各自穿过网络;最后再重新拼装。
- 例子
- 一个网页是以许多数据包的形式到达你这里的。
- 坑
- 数据包可能丢失,也可能乱序到达 —— TCP 负责解决这个问题。
- 关联
- 数据包上的地址就是 IP 地址。
IP Address —— 每台机器都有地址
地球上每栋楼都有唯一的邮政地址。没有地址,邮递员既无处投递,也无处回信。
数据包要送达,目的地就需要一个地址。这就是 IP 地址 —— 标识网络上一台机器的数字,比如 142.250.74.78。每台联网的设备都有一个。你的笔记本发出请求时,会盖上自己的 IP 作为回信地址,让答案知道往哪回。没有地址,就没有对话。
- 是什么
- 标识网络上一台机器的数字。
- 怎么运作
- 每个数据包都带着目的地址和发送方地址,这样回复就知道往哪走。
- 例子
142.250.74.78—— 你的请求正前往的那台服务器。- 坑
- 没人记得住数字 —— 所以我们需要名称和 DNS。
- 关联
- 它带你到机器;端口带你到机器上的那项服务。
Client–Server —— 客户端提问,服务器回答
一家餐馆和一间厨房。一边下单,另一边备餐并端回来。整顿饭里,角色是固定的。
Web 的大部分都运行在客户端–服务器模型上。客户端 —— 你的浏览器、你的应用 —— 发出请求;服务器 —— 运行网站或服务的机器 —— 返回响应。你的手机是那个说“给我这个页面”的客户端;某处的服务器用页面作答。记住这一对 —— 下面的每个想法,都是为了让这套请求与响应运转起来。
- 是什么
- 一方提问、另一方回答的模型。
- 怎么运作
- 客户端发送请求;服务器处理并响应。
- 例子
- 你的手机请求一个页面 —— 数据中心里的服务器把它返回。
- 坑
- 角色取决于这场对话:一台服务器也可以是另一台服务器的客户端。
- 关联
- 在 Web 上,这场对话的语言是 HTTP。
网络就是机器之间传递带地址的消息。客户端提问,服务器回答 —— 其余的一切都是为了让它可靠。
你输入的是 example.com 这样的名字,但网络只会按数字来路由。得有个东西把你记得住的名字翻译成机器需要的地址。这个东西就是 DNS。
Domain Name —— 名字给人用,数字给机器用
你靠名字记住朋友,但电话系统只会拨号码 —— 所以你有一本通讯录,把一个换成另一个。
人们记得住 wikipedia.org;网络需要的是像 198.35.26.96 这样的 IP 地址。域名是便于人使用的标签;IP 是便于机器使用的地址。两者必须关联起来,因为没人想背数字,而路由器也没法路由一个名字。弥合这道鸿沟是一整套系统,每次点击都在不停地、悄无声息地运行。
- 是什么
- 网站的可读名称,是为人设计的。
- 怎么运作
- 它本身哪儿也去不了 —— 要先被翻译成 IP 地址。
- 例子
wikipedia.org→198.35.26.96。- 坑
- 路由器不懂名字 —— 只认数字。
- 关联
- DNS 把名字翻译成地址。
DNS —— 互联网的电话簿
一本巨大的、永远开放的目录:你给它一个名字,它还你一个可以拨的号码。你从来看不到它工作 —— 你只是拿到了号码。
DNS —— 域名系统(Domain Name System)—— 是把域名翻译成 IP 地址的服务。浏览器要取回 example.com 之前,会先问 DNS“这个名字的地址是什么?”,然后拿回一个数字。这次查询(也叫解析)每次都最先发生,只需几毫秒。这是不起眼的一步,却让可读的网址成为可能。
- 是什么
- 把域名变成 IP 地址的服务。
- 怎么运作
- 浏览器问“这个名字的 IP 是什么?”,然后拿回一个数字。
- 例子
example.com→ 一个 IP 地址 → 然后才连接到服务器。- 坑
- 它是每次加载的第一步:DNS 坏了,网站就“不存在”了。
- 关联
- 它的答案由带有 TTL 的 DNS 缓存保存。
DNS Caching 与 TTL —— 答案会被记住
你查一次朋友的号码,写在便利贴上 —— 下次直接看便利贴,不必再翻整本目录。
每个名字都从头查起会很慢,所以 DNS 的答案会被缓存(cache)—— 在你的浏览器、操作系统和网络中被记住一段时间。地址会附带一个 TTL(time to live,存活时间),说明在重新检查之前可以放心复用多久。这就是为什么你访问过的网站能瞬间找到地址,也是为什么 DNS 的改动需要时间才能扩散开。
- 是什么
- 被记住的 DNS 答案,以及它能被信任多久。
- 怎么运作
- 浏览器、操作系统和网络保存这个答案;TTL 用完之前,地址都来自记忆。
- 例子
- 你访问过的网站能被瞬间找到 —— 它的地址就躺在某个缓存里。
- 坑
- 改了 DNS,旧答案仍会在缓存里活到 TTL 过期。改动扩散得很慢。
- 关联
- 和 CDN 是同一招:把答案放得更近。
DNS 就是电话簿:把你记得住的名字变成网络需要的 IP 地址,然后缓存起来,下次就是瞬间完成。
知道地址,不等于就有了对话。在消息可靠地流动之前,两台机器要先建立连接 —— 并约定去敲服务器的哪一扇“门”。
TCP —— 可靠、有序的线路
一通带确认的电话:你说一句话,对方说“收到”,每一部分都得到确认、按顺序到位之前,什么都不往下走。
TCP(Transmission Control Protocol,传输控制协议)是最常见的可靠发送数据的方式。它先用一次快速的握手(handshake)建立连接 —— 双方同意开始对话 —— 然后保证每个数据包都按顺序到达,丢了的会被重发。你用一点速度,换来没有任何东西被丢掉或弄乱的保证。Web、电子邮件和大多数应用都运行在 TCP 上,正是为了这份可靠。
- 是什么
- 一条可靠的线路:全部到达,没有丢失,全都有序。
- 怎么运作
- 握手建立连接;接收方确认数据包;丢了的会被重发。
- 例子
- 网页、电子邮件、大多数应用。
- 坑
- 可靠是要花速度的:握手,以及等待确认。
- 关联
- 快速的替代品是 UDP;HTTP 运行在 TCP 之上。
UDP —— 用速度换可靠
在嘈杂的房间里隔空喊话通报消息 —— 有些词会丢,但你不会停下来逐个确认,因为跟上节奏比听清每个词更重要。
UDP(User Datagram Protocol,用户数据报协议)是快速、不作保证的替代方案:它不握手,也不重发丢失的包,直接把数据包发出去。你失去了可靠,换来了速度和低开销。对直播视频、语音通话和游戏来说,这是正确的取舍 —— 丢一帧无所谓,但等待不行。知道两者都存在,你就明白网络里始终有一个速度与可靠的旋钮。
- 是什么
- 一条快速的线路,不保证送达,也不保证顺序。
- 怎么运作
- 没有握手,没有重试:发出去就不管了。
- 例子
- 直播视频、语音通话、在线游戏。
- 坑
- 数据包会丢 —— 应用必须能容忍。
- 关联
- 在旋钮上与 TCP 处于相反的一端。
Port —— 一台机器上编了号的门
一栋楼,许多扇门,每扇都按用途编号 —— 送货走 80 号门,办公室走另一扇。同一个地址,不同的入口。
一台机器上运行着许多服务,所以光有 IP 地址还不够 —— 你还需要一个端口(port),用一个数字选定要访问哪项服务。Web 流量按惯例使用端口 80(HTTP)或 443(HTTPS);数据库可能监听另一个端口。地址带你到那栋楼;端口带你到对的那扇门。IP 加端口合在一起,就指明了一个确切的目的地。
- 是什么
- 在一台机器上选定某项服务的数字。
- 怎么运作
- 每项服务在自己的端口上“监听”;请求发往 IP:端口。
- 例子
80是 HTTP,443是 HTTPS;数据库在自己的端口上监听。- 坑
- IP 对了但端口错了,就是敲错了门。
- 关联
- 补全 IP 地址;TCP 和 UDP 都会用到。
TCP 是可靠、有序的线路;UDP 又快又会丢。IP 找到那栋楼,端口选中那扇门。
线路一旦开通,双方就需要一门共同的语言来提问和回答。在 Web 上,这门语言就是 HTTP —— 每个请求和每个回复都遵循的一种简单而严格的格式。
HTTP —— 请求与响应
一场正式的书信往来:一封结构清晰的请求寄出,一封结构清晰的回复寄回,双方都遵循同一套约定好的格式。
HTTP(HyperText Transfer Protocol,超文本传输协议)是 Web 的语言。客户端发送请求(request)—— 它想要什么 —— 服务器发回响应(response)—— 结果。每个页面、每张图片、每次 API 调用,都是这样一次交换。它基于文本、结构清晰,所以有那么多工具都能讲它。掌握一次请求和响应的形状,你就明白整个 Web 是怎么运转的。
- 是什么
- Web 的请求与响应语言。
- 怎么运作
- 客户端发送请求,服务器返回响应;每样东西一次交换。
- 例子
- 一个页面、一张图片、一次 API 调用 —— 各是一次独立的 HTTP 交换。
- 坑
- 普通 HTTP 没有加密 —— 路径上的任何人都能读到。
- 关联
- 由方法、头部 + 正文、状态码组成;安全的版本是 HTTPS。
HTTP Methods —— 动词说明你想要什么
在图书馆的柜台:你可以借一本书、还一本书,或者请求新增一本。同一个柜台,不同的意图 —— 工作人员对每种的处理也不同。
每个请求都有一个方法(method)—— 也就是动词。GET 获取数据(加载页面)。POST 发送新数据(提交表单)。PUT 更新某样东西;DELETE 删除它。方法让服务器一眼就看出你的意图,而规范的系统会区别对待它们 —— GET 绝不该改变任何东西,而 POST 则被期望会改变。这些动词是 API 设计的骨架。
- 是什么
- 请求开头的那个词,说明你想做什么。
- 怎么运作
- GET 获取,POST 创建,PUT 更新,DELETE 删除。
- 例子
- 打开页面是 GET;提交表单是 POST。
- 坑
- 会改变东西的 GET 是设计上的 bug。
- 关联
- 位于请求的第一行,在头部之前。
Headers 与 Body —— 细节与货物
信封外面写着备注 —— 给谁的、里面是什么、怎么处理 —— 真正的信在里面。
每个请求和响应都有头部(headers)—— 一行行带标签的元数据,比如内容类型、语言、是谁在请求,以及认证令牌 —— 还有一个可选的正文(body),即真正的载荷(上传的表单数据,或返回的页面、JSON)。头部是双方在不碰货物的前提下协商细节的方式。一次交换里的大部分“怎么做”都在头部里。
- 是什么
- 头部是关于消息的元数据;正文是数据本身。
- 怎么运作
- 头部以“名称: 值”的行出现;正文跟在后面。
- 例子
Content-Type: application/json表示正文是 JSON;正文就是表单数据。- 坑
- 不是每条消息都有正文:普通的 GET 就没有。
- 关联
- Cookie 搭在头部里 —— 这就是在无状态的 HTTP 上实现登录的办法。
Status Codes —— 结果如何
回复的红绿灯:绿灯表示通行,重定向指向别处,红灯告诉你哪里出了错 —— 以及是谁的错。
每个响应都带着一个状态码(status code)。2xx 表示成功(200 OK)。3xx 是重定向(去那边看看)。4xx 表示客户端错了 —— 404 Not Found、403 Forbidden —— 是你请求错了。5xx 表示服务器错了 —— 500 —— 是它坏了。读第一位数字,你就能立刻知道成没成、谁的错、该往哪看。这是 Web 上最有用的单项调试技能。
- 是什么
- 响应里的一个三位数字,说明结果如何。
- 怎么运作
- 2xx 成功,3xx 重定向,4xx 客户端错误,5xx 服务器错误。
- 例子
404—— 没有这个页面;500—— 服务器坏了。- 坑
- 把 4xx 和 5xx 搞混,就是在错误的一边找 bug。
- 关联
- 每个 HTTP 响应里你最先检查的东西。
Stateless 与 Cookies —— HTTP 会忘了你
一个对你上次来访毫无记忆的柜台职员 —— 每次你走上前,都得重新自我介绍,再把票出示一遍。
HTTP 是无状态(stateless)的:每个请求都是独立的,服务器默认不会记住上一个请求的任何东西。所以要保持登录,每个请求都必须携带你是谁的证明 —— 头部里的一个 cookie 或令牌。无状态正是 Web 能扩展到数十亿请求的原因,而理解它,也就明白了为什么你的身份要搭在每一次调用上。
- 是什么
- 服务器忘记过去的请求;cookie 把记忆带在身上。
- 怎么运作
- 浏览器把 cookie 或令牌附加到每个请求的头部。
- 例子
- 你能保持登录,是因为每个请求都带着你的会话 cookie。
- 坑
- 没有 cookie —— 你对服务器来说就是陌生人。
- 关联
- cookie 搭在头部里;无状态让负载均衡器更省事。
HTTP 就是请求与响应:用方法表达意图,用头部交代细节,用正文装载货物,再用状态码准确告诉你结果如何。
普通 HTTP 是一张明信片 —— 经手的人都能读。HTTPS 是同一场对话,被封进一个只有正确的服务器才能拆开的信封里,并且有签名,让你知道自己在和谁说话。
TLS 与 HTTPS —— 加密把消息封起来
把一张能读的明信片,换成一只只有收件人持有钥匙的上锁盒子 —— 快递员负责运送,但没有一个人能读到里面的内容。
HTTPS 是用 TLS(Transport Layer Security,传输层安全)把 HTTP 包进加密之中。它把内容打乱,让你和服务器之间的任何人 —— 咖啡馆的 Wi-Fi、网络运营商、攻击者 —— 看到的都只是乱码,而不是你的密码或消息。地址栏里的锁图标表示这层封条已经就位。在现代 Web 上,它是默认配置,因为没封好的对话,就是任何人都能读的对话。
- 是什么
- 给线路加密;HTTPS 就是跑在 TLS 之上的 HTTP。
- 怎么运作
- TLS 握手之后,内容被打乱 —— 路径上只能看到乱码。
- 例子
- 地址栏里的锁;端口
443。 - 坑
- 光有加密还不够 —— 你还得知道服务器是真的。
- 关联
- 服务器的身份由证书来证明。
Certificate —— 证明你在和谁说话
一本由可信机构查验过的护照 —— 它证明这个人就是他所声称的人,而不是顶着他名字的冒牌货。
光有加密还不够;你还需要知道这台服务器确实是 yourbank.com,而不是假货。证书(certificate)是一张数字身份证,由受信任的证书颁发机构(CA)签发,证明服务器确实拥有它所声称的名字。你的浏览器会自动检查它,缺失或有误时会警告你。正是这一点,让攻击者即使在加密连接上也无法冒充网站。
- 是什么
- 一张数字身份证:“这台服务器拥有这个名字”。
- 怎么运作
- CA 签发证书;服务器出示它;浏览器自己验证签名。
- 例子
- 网站证书缺失或有误时,浏览器会警告你。
- 坑
- 别点掉证书警告硬往下走 —— 那可能是假的。
- 关联
- 把中间人挡在门外。
Man-in-the-Middle —— 为什么锁很重要
就像寄一封封好并经过验证的信,和在拥挤的房间里大声喊出你的银行信息之间的区别。
没有 HTTPS,网络路径上的任何人都能读取甚至篡改你的流量 —— 一个悄悄坐在你和服务器之间的中间人(man-in-the-middle,MITM)。有了 HTTPS,消息被封起来,发送方也得到验证。这就是为什么登录页面、支付,乃至如今几乎一切都用 HTTPS,也是为什么浏览器把普通 HTTP 标成“不安全”。那把锁是个小图标,代表的却是一项重大的保证。
- 是什么
- 位于你和服务器之间、读取或改动流量的攻击者。
- 怎么运作
- 你以为自己在和服务器说话,其实是经过他们在说话。
- 例子
- 一个恶意 Wi-Fi 网络在窥探普通 HTTP。
- 坑
- 它是隐形的:一切都“正常工作”,而你的数据在泄露。
- 关联
- 防御靠 TLS(封条)+ 证书(身份检查)。
HTTPS 用加密封住消息,用证书证明服务器的身份 —— 隐私与信任,尽在一把锁里。
Web 感觉是瞬时的,但距离和物理总在收一笔过路费。两个词 —— 延迟和带宽 —— 解释了大部分“为什么感觉快、为什么感觉慢”。
Latency 与 Bandwidth —— 等待与宽度
一根水管:第一滴水多久到是一回事;每秒能流多少水是另一回事。再宽的水管,水流到远端之前也有延迟。
延迟(latency)是响应开始之前的等待 —— 一条消息去了再回来的往返时间。带宽(bandwidth)是你每秒能传输多少数据。两者互相独立:一条连接可以带宽很高、延迟也很高。大文件下载在乎带宽;一个灵敏、反应快的网站在乎延迟。把两者混为一谈,就是“我网速很快,但网站感觉很慢”让人困惑的原因。
- 是什么
- 延迟 —— 你要等多久;带宽 —— 每秒多少数据。
- 怎么运作
- 它们互相独立:可以很宽,同时等待很久。
- 例子
- 大文件下载很快,但在一个遥远的网站上每次点击都卡。
- 坑
- “网速快、网站慢”通常是延迟问题,不是带宽问题。
- 关联
- 延迟随每次往返而增长;CDN 能降低它。
Round Trip —— 每一趟都要花时间
向另一个大陆上的人提问:即使以光速,一来一回也有一个无法突破的下限。
向遥远的服务器发出的请求,要走一次实实在在的往返(round trip),而光在全球范围内也不是瞬间到达的 —— 绕地球半圈有几十毫秒的硬下限。更糟的是,加载一个页面往往需要许多次往返。这就是为什么话痨式(chatty)的设计在远距离下感觉迟钝,也是为什么减少往返次数是最古老的性能技巧之一。
- 是什么
- 一条消息去往服务器再回来的旅程。
- 怎么运作
- 每一步 —— DNS、握手、请求 —— 都至少要花一趟。
- 例子
- 绕地球半圈要几十毫秒,即使是光。
- 坑
- 许多小请求(“话痨式”设计)会把延迟累加起来。
- 关联
- 更少的往返,或更短的路径(CDN),意味着更低的延迟。
CDN —— 把答案放得更近
一本热门书在各地的本地图书馆都有,而不是只有一座中央档案馆、得靠邮寄去借 —— 你附近的那一本到得快得多。
CDN(content delivery network,内容分发网络)是一批遍布全球的服务器,把你的内容副本保存在靠近用户的地方。东京的用户加载你的网站时,是由附近城市提供服务,而不是由远在大洋彼岸的源(origin)服务器 —— 延迟因此大幅下降。CDN 就是把缓存用在地理上,也正是它让全球性的网站在每个地方都感觉像本地的。
- 是什么
- 一批遍布全球、存有你内容副本的服务器。
- 怎么运作
- 用户由最近的服务器提供服务,而不是源服务器。
- 例子
- 东京的用户从附近的城市拿到页面。
- 坑
- 这些副本是缓存:更新不会瞬间到达。
- 关联
- 降低延迟和很长的往返;是 DNS 缓存的近亲。
Load Balancer —— 把工作分摊开
银行里的排队管理员,把客户引向任何一个有空的柜员,这样就不会有一个窗口被淹没、而其他窗口闲着。
当一台服务器扛不住全部流量时,负载均衡器(load balancer)会站在几台服务器前面,把请求分摊给它们。大型网站就是这样应对数百万用户的 —— 在均衡器后面增加更多服务器 —— 也是这样挺过某台服务器故障的,因为均衡器会直接绕开它。这个名字恰好描述了它做的事:它让负载保持均衡。
- 是什么
- 把请求分摊到多台服务器上的中间人。
- 怎么运作
- 每个请求都交给其中一台存活的服务器;挂掉的会被跳过。
- 例子
- 流量增长了 —— 你在均衡器后面加服务器。
- 坑
- 如果某台服务器把会话存在自己的内存里,其他服务器就不知道它。
- 关联
- 之所以好用,是因为 HTTP 是无状态的。
延迟是等待;带宽是宽度。距离总会收一笔过路费 —— CDN 把答案挪近,负载均衡器把工作分摊开。
现在,跟着一次点击,从地址栏一直走到渲染出的页面,把每个词串起来。如果你能把这个过程讲出来,你就明白网络是怎么对话的了。
加载一个 URL 时发生了什么
一封信的完整旅程:查地址、开通线路、封好信封、提出问题、收到回复 —— 全都在远不到一秒的时间里。
你输入 example.com。DNS 把名字变成 IP 地址。你的浏览器向那个 IP 的端口 443 打开一条 TCP 连接,双方进行 TLS 握手,让线路被加密,并检查服务器的证书。在这条封好的线路上,浏览器发出一个 HTTP GET 请求;服务器回复一个状态码和一个正文。页面可能来自附近的 CDN,以降低延迟。浏览器读取响应并画出页面。这门课里的每个术语,都只是在为这一秒钟平凡的旅程命名其中的一步。
这些概念如何连在一起
套娃:每一层都套在下一层里,从外面你只看得见最上面那一层。
这些概念不是孤立存在的 —— 它们一层层叠起来。最底层是 IP,带着它的数据包和地址。在它之上跑着 TCP 或 UDP,带着它们的端口。TCP 之上是 TLS,最顶层是 HTTP,请求与响应的语言。旁边站着一些帮手:DNS 为最底层提供地址,而 CDN 和负载均衡器则对抗延迟和负载。
- DNS 把域名解析成 IP 地址。
- 向那个 IP 的某个端口(HTTPS 是 443)打开一条 TCP 连接。
- TLS 握手把线路加密,并检查服务器的证书。
- 客户端发送一个 HTTP 请求 —— 一个方法、头部,也许还有正文。
- 服务器返回一个状态码、头部和正文。
- CDN 可能从附近提供它;负载均衡器可能挑选服务器。
- 404 与 500 一对比,立刻就知道是你的错还是服务器的错。
- “网速快但网站慢”,你会读成延迟问题,而不是带宽问题。
- 锁意味着加密并且身份已验证 —— 你清楚它保证了什么。
- 你能解释为什么在每个无状态请求上保持登录都需要一个 cookie。
- 你可以不看资料,把上面整个 URL 旅程讲出来。
速查表:全部 21 个概念
基础
- Packet数据包
一小块标着“从哪来”和“到哪去”的数据。
- IP AddressIP 地址,Internet Protocol address
标识网络上一台机器的数字。
- Client–Server请求–响应模型
客户端提问,服务器回答。
名称
- Domain Name域名
网站的可读名称,为人而设计。
- DNS域名系统,Domain Name System
电话簿:名字 → IP 地址。
- DNS Caching · TTLDNS 缓存
答案被记住;TTL 说明能信任多久。
连接
- TCP传输控制协议,Transmission Control Protocol
可靠的线路:握手、全部有序、丢了就重发。
- UDP用户数据报协议,User Datagram Protocol
不作保证的快速线路:发出去就不管。
- Port端口
门牌号:机器上的哪项服务。
HTTP
- HTTP超文本传输协议,HyperText Transfer Protocol
Web 的语言:请求与响应。
- HTTP MethodsGET · POST · PUT · DELETE
请求的动词 —— 你的意图。
- Headers · Body元数据与载荷
消息的细节,以及货物本身。
- Status CodesHTTP 状态码
2xx 成功,3xx 重定向,4xx 你的错,5xx 服务器的错。
- Stateless · Cookie服务器无记忆
服务器会忘掉你;cookie 搭在每个请求上。
HTTPS
- TLS · HTTPS加密
把对话封起来;HTTPS = HTTP + TLS。
- CertificateTLS 证书,CA
一张签发的身份证:服务器拥有它的名字。
- Man-in-the-MiddleMITM
中间的攻击者;HTTPS 能抵御它。
速度
- Latency · Bandwidth等待与宽度
你等多久,以及每秒多少数据。是不同的两件事。
- Round TripRTT,往返
去了再回来;每一趟都要花时间。
- CDN内容分发网络,Content Delivery Network
把内容副本放在靠近用户的地方。
- Load Balancer负载均衡器,LB
把请求分摊到多台服务器上,并绕开故障。
加载一个页面,就是一场快速的对话:找到地址、开通线路、封好、提问、回答。每个吓人的词,都只是那一秒钟里的一步。