Skip to content

Commit db07f90

Browse files
committed
docs: 优化网络文章开头
1 parent 8ce155c commit db07f90

18 files changed

Lines changed: 455 additions & 150 deletions

docs/.vuepress/sidebar/cs-basics.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const csBasics = [
2222
],
2323
},
2424
{
25-
text: "重点",
25+
text: "基础",
2626
icon: ICONS.STAR,
2727
children: [
2828
{
@@ -39,7 +39,7 @@ export const csBasics = [
3939
text: "应用层",
4040
icon: ICONS.CODE,
4141
children: [
42-
{ text: "应用层常见协议总结", link: "application-layer-protocol" },
42+
{ text: "⭐️应用层常见协议总结", link: "application-layer-protocol" },
4343
{ text: "⭐️HTTP vs HTTPS", link: "http-vs-https" },
4444
{
4545
text: "HTTPS 握手里的 RSA 和 ECDHE",

docs/cs-basics/README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,33 @@ head:
2525

2626
**重点**
2727

28-
- [OSI 和 TCP/IP 网络分层模型详解](./network/osi-and-tcp-ip-model.md)
29-
- [从输入 URL 到页面展示到底发生了什么?](./network/the-whole-process-of-accessing-web-pages.md)
28+
- [OSI 和 TCP/IP 网络分层模型详解(基础)](./network/osi-and-tcp-ip-model.md)
29+
- [访问网页的全过程(知识串联)](./network/the-whole-process-of-accessing-web-pages.md)
3030

3131
**应用层**
3232

33-
- [应用层常见协议总结](./network/application-layer-protocol.md)
34-
- [HTTP vs HTTPS](./network/http-vs-https.md)
35-
- [HTTPS 握手里的 RSA 和 ECDHE,到底差在哪?](./network/https-rsa-vs-ecdhe.md)
36-
- [HTTP 1.0 vs HTTP 1.1](./network/http1.0-vs-http1.1.md)
37-
- [HTTP 常见状态码](./network/http-status-codes.md)
38-
- [DNS 域名系统详解](./network/dns.md)
33+
- [常见应用层协议总结:HTTP、WebSocket、SMTP、FTP、SSH、DNS 等](./network/application-layer-protocol.md)
34+
- [HTTP vs HTTPS:区别在哪里、HTTPS 为什么更安全(应用层)](./network/http-vs-https.md)
35+
- [HTTPS 握手里的 RSA 和 ECDHE,到底差在哪?(应用层)](./network/https-rsa-vs-ecdhe.md)
36+
- [HTTP 1.0 vs HTTP 1.1:长连接、缓存、Host 头等核心差异(应用层)](./network/http1.0-vs-http1.1.md)
37+
- [HTTP 常见状态码总结(应用层)](./network/http-status-codes.md)
38+
- [DNS 域名系统详解(应用层)](./network/dns.md)
3939

4040
**传输层**
4141

42-
- [TCP 三次握手和四次挥手](./network/tcp-connection-and-disconnection.md)
43-
- [TCP TIME_WAIT 详解](./network/tcp-time-wait.md)
44-
- [TCP 传输可靠性保障](./network/tcp-reliability-guarantee.md)
45-
- [为什么 TCP 是面向字节流,UDP 是面向报文?](./network/tcp-byte-stream-udp-datagram.md)
42+
- [TCP 三次握手和四次挥手(传输层)](./network/tcp-connection-and-disconnection.md)
43+
- [TCP TIME_WAIT 详解:为什么要等、会不会出问题、能不能复用?](./network/tcp-time-wait.md)
44+
- [TCP 传输可靠性保障(传输层)](./network/tcp-reliability-guarantee.md)
45+
- [为什么 TCP 是面向字节流,UDP 是面向报文?(传输层)](./network/tcp-byte-stream-udp-datagram.md)
4646

4747
**网络层**
4848

49-
- [ARP 协议详解](./network/arp.md)
50-
- [NAT 协议详解](./network/nat.md)
49+
- [ARP 协议详解(网络层)](./network/arp.md)
50+
- [NAT 协议详解(网络层)](./network/nat.md)
5151

5252
**安全**
5353

54-
- [网络攻击常见手段总结](./network/network-attack-means.md)
54+
- [网络攻击常见手段总结(安全)](./network/network-attack-means.md)
5555

5656
## 操作系统
5757

docs/cs-basics/network/application-layer-protocol.md

Lines changed: 248 additions & 72 deletions
Large diffs are not rendered by default.

docs/cs-basics/network/arp.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@ head:
1010
content: ARP,地址解析,IP到MAC,广播问询,单播响应,ARP表,欺骗
1111
---
1212

13-
每当我们学习一个新的网络协议的时候,都要把他结合到 OSI 七层模型中,或者是 TCP/IP 协议栈中来学习,一是要学习该协议在整个网络协议栈中的位置,二是要学习该协议解决了什么问题,地位如何?三是要学习该协议的工作原理,以及一些更深入的细节
13+
IP 地址负责网络层寻址,但数据帧在局域网里真正转发时,还需要知道下一跳设备的 MAC 地址
1414

15-
**ARP 协议**,可以说是在协议栈中属于一个**偏底层的、非常重要的、又非常简单的**通信协议
15+
ARP 要解决的就是这个转换问题:**已知目标 IP 地址,如何找到对应的 MAC 地址**。它看起来简单,却串起了网络层和链路层,也是理解局域网通信、网关转发和 ARP 欺骗的基础
1616

17-
开始阅读这篇文章之前,你可以先看看下面几个问题
17+
这篇文章主要回答几个问题
1818

19-
1. **ARP 协议在协议栈中的位置?** ARP 协议在协议栈中的位置非常重要,在理解了它的工作原理之后,也很难说它到底是网络层协议,还是链路层协议,因为它恰恰串联起了网络层和链路层。国外的大部分教程通常将 ARP 协议放在网络层。
20-
2. **ARP 协议解决了什么问题,地位如何?** ARP 协议,全称 **地址解析协议(Address Resolution Protocol)**,它解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。
21-
3. **ARP 工作原理?** 只希望大家记住几个关键词:**ARP 表、广播问询、单播响应**
19+
1. ARP 在协议栈中处于什么位置?
20+
2. ARP 如何通过广播问询、单播响应完成地址解析?
21+
3. ARP 表有什么作用,缓存过期会带来什么影响?
22+
4. 常见 ARP 攻击是怎么发生的,又该如何防御?
2223

2324
## MAC 地址
2425

docs/cs-basics/network/computer-network-xiexiren-summary.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ head:
1010
content: 计算机网络,谢希仁,术语,分层模型,链路,主机,教材总结
1111
---
1212

13-
本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的[《计算机网络》第七版](https://www.elias.ltd/usr/local/etc/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E7%AC%AC7%E7%89%88%EF%BC%89%E8%B0%A2%E5%B8%8C%E4%BB%81.pdf)这本书。为了内容更容易理解,我对之前的整理进行了一波重构,并配上了一些相关的示意图便于理解。
13+
这篇笔记来自我大二学习计算机网络时的整理,大部分内容参考谢希仁老师的[《计算机网络》第七版](https://www.elias.ltd/usr/local/etc/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E7%AC%AC7%E7%89%88%EF%BC%89%E8%B0%A2%E5%B8%8C%E4%BB%81.pdf)
14+
15+
计算机网络教材内容很散:术语、分层、链路、路由、运输层、应用层都要串起来看。为了复习起来更顺,我对原来的笔记做了一次重构,并补充了一些示意图。
16+
17+
这篇文章主要回答几个问题:
18+
19+
1. 计算机网络里常见基础术语分别是什么意思?
20+
2. OSI、TCP/IP 分层模型分别如何理解?
21+
3. 链路层、网络层、运输层、应用层各自解决什么问题?
22+
4. 复习《计算机网络》这本书时,哪些概念最容易混淆?
1423

1524
![](https://oss.javaguide.cn/p3-juejin/fb5d8645cd55484ab0177f25a13e97db~tplv-k3u1fbpfcp-zoom-1.png)
1625

docs/cs-basics/network/dns.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ head:
1010
content: DNS,域名解析,递归查询,迭代查询,缓存,权威DNS,端口53,UDP
1111
---
1212

13-
DNS(Domain Name System)域名管理系统,是当用户使用浏览器访问网址之后,使用的第一个重要协议。DNS 要解决的是**域名和 IP 地址的映射问题**
13+
在浏览器地址栏输入域名之后,真正发起 HTTP 请求之前,通常要先经过 DNS 解析。
14+
15+
DNS 要解决的是**域名和 IP 地址的映射问题**。它看起来只是“把域名翻译成 IP”,但背后涉及本地缓存、递归查询、迭代查询、权威服务器、根服务器、UDP/TCP 切换等一整套机制。
16+
17+
这篇文章主要回答几个问题:
18+
19+
1. DNS 为什么需要分层设计?
20+
2. 一次完整的域名解析通常会经过哪些步骤?
21+
3. 递归查询和迭代查询有什么区别?
22+
4. DNS 为什么通常基于 UDP,什么情况下会改用 TCP?
1423

1524
![DNS:域名系统](https://oss.javaguide.cn/github/javaguide/cs-basics/network/dns-overview.png)
1625

docs/cs-basics/network/http-status-codes.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ head:
1010
content: HTTP 状态码,2xx,3xx,4xx,5xx,重定向,错误码,201 Created,204 No Content
1111
---
1212

13-
HTTP 状态码用于描述 HTTP 请求的结果,比如 2xx 就代表请求被成功处理。
13+
HTTP 状态码是服务端返回给客户端的处理结果摘要。看到一个状态码,基本就能判断请求是成功、重定向、客户端出错,还是服务端出错。
14+
15+
状态码看起来只是数字,但很多码很容易混淆:比如 301 和 302、401 和 403、500 和 502、201 和 204。
16+
17+
这篇文章主要回答几个问题:
18+
19+
1. 1xx、2xx、3xx、4xx、5xx 分别代表什么类型的结果?
20+
2. 常见成功状态码如 200、201、204 有什么区别?
21+
3. 常见客户端错误如 400、401、403、404 应该怎么理解?
22+
4. 常见服务端错误如 500、502、503、504 通常意味着什么?
1423

1524
![常见 HTTP 状态码](https://oss.javaguide.cn/github/javaguide/cs-basics/network/http-status-code.png)
1625

docs/cs-basics/network/http-vs-https.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: HTTP vs HTTPS(应用层)
2+
title: HTTP vs HTTPS:区别在哪里、HTTPS 为什么更安全(应用层)
33
description: 对比 HTTP 与 HTTPS 的协议与安全机制,解析 SSL/TLS 工作原理与握手流程,明确应用层安全落地细节。
44
category: 计算机基础
55
tag:
@@ -10,6 +10,17 @@ head:
1010
content: HTTP,HTTPS,SSL,TLS,加密,认证,端口,安全性,握手流程
1111
---
1212

13+
HTTP 能传输网页内容,但默认是明文传输。请求和响应如果在网络中被监听、篡改或冒充,HTTP 本身没有足够的保护能力。
14+
15+
HTTPS 不是一个全新的应用层协议,而是在 HTTP 和 TCP 之间加入 TLS/SSL,用加密、身份认证和完整性校验来保护通信过程。
16+
17+
这篇文章主要回答几个问题:
18+
19+
1. HTTP 和 HTTPS 的核心区别是什么?
20+
2. HTTPS 如何防止窃听、篡改和冒充?
21+
3. SSL/TLS 握手大致做了哪些事情?
22+
4. 为什么使用 HTTPS 后,证书、混合内容和性能优化仍然需要关注?
23+
1324
## HTTP 协议
1425

1526
### HTTP 协议介绍
@@ -18,6 +29,8 @@ HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾
1829

1930
并且,HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。
2031

32+
![HTTP:超文本传输协议概览](https://oss.javaguide.cn/github/javaguide/cs-basics/network/http-overview.png)
33+
2134
### HTTP 协议通信过程
2235

2336
HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80. 通信过程主要如下:

docs/cs-basics/network/http1.0-vs-http1.1.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: HTTP 1.0 vs HTTP 1.1(应用层)
2+
title: HTTP 1.0 vs HTTP 1.1:长连接、缓存、Host 头等核心差异(应用层)
33
description: 细致对比 HTTP/1.0 与 HTTP/1.1 的协议差异,涵盖长连接、管道化、缓存与状态码增强等关键变更与实践影响。
44
category: 计算机基础
55
tag:
@@ -10,13 +10,20 @@ head:
1010
content: HTTP/1.0,HTTP/1.1,长连接,管道化,缓存,状态码,Host,带宽优化
1111
---
1212

13-
这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1
13+
HTTP/1.0 和 HTTP/1.1 名字只差一个小版本,但它们在连接复用、缓存、Host 头、状态码和带宽优化上都有明显差异。
1414

15-
- 响应状态码
16-
- 缓存处理
17-
- 连接方式
18-
- Host 头处理
19-
- 带宽优化
15+
这些差异不是单纯的协议细节,它们直接影响浏览器如何发请求、服务器如何复用连接、缓存如何生效,以及虚拟主机如何工作。
16+
17+
这篇文章主要回答几个问题:
18+
19+
1. HTTP/1.1 相比 HTTP/1.0 新增了哪些常见状态码?
20+
2. HTTP/1.0 和 HTTP/1.1 的缓存机制有什么差异?
21+
3. HTTP/1.1 为什么默认支持长连接?
22+
4. Host 头和带宽优化分别解决了什么问题?
23+
24+
开始之前,先简单回顾一下 HTTP 协议:
25+
26+
![HTTP:超文本传输协议概览](https://oss.javaguide.cn/github/javaguide/cs-basics/network/http-overview.png)
2027

2128
## 响应状态码
2229

docs/cs-basics/network/https-rsa-vs-ecdhe.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,18 @@ head:
1818

1919
但严格说,HTTPS 从来不等于 RSA 加密。即使在 TLS 1.0、TLS 1.1 时代,RSA 也只是可选方案之一,协议里还存在 DHE 这类密钥交换方式。到了 TLS 1.3,静态 RSA 密钥交换已经被移除,RSA 更多出现在证书签名、身份认证这类位置。
2020

21-
所以,这篇文章真正要对比的不是“RSA 和 ECDHE 谁更高级”,而是:
21+
所以,这篇文章真正要对比的不是“RSA 和 ECDHE 谁更高级”
2222

2323
**RSA 握手里,会话密钥材料是客户端生成后加密发给服务端;ECDHE 握手里,会话密钥材料不是直接传过去的,而是客户端和服务端各自算出来的。**
2424

25-
这句话讲清楚了,`PreMasterSecret``Server Key Exchange`、前向安全、TLS 1.3 为什么移除静态 RSA,后面都能顺着理解。
25+
这篇文章主要回答几个问题:
26+
27+
1. HTTPS 为什么不等于 RSA 加密?
28+
2. RSA 握手和 ECDHE 握手的会话密钥材料分别是怎么来的?
29+
3. ECDHE 为什么能提供前向安全性?
30+
4. TLS 1.3 为什么移除静态 RSA 密钥交换?
31+
32+
把这些问题讲清楚了,`PreMasterSecret``Server Key Exchange`、前向安全、TLS 1.3 为什么移除静态 RSA,后面都能顺着理解。
2633

2734
![RSA 与 ECDHE 密钥交换:核心差异](https://oss.javaguide.cn/github/javaguide/cs-basics/network/https-rsa-ecdhe-rsa-and-ecdhe-key-exchange-core-differences.png)
2835

0 commit comments

Comments
 (0)