Skip to content

Commit

Permalink
docs📝: fix
Browse files Browse the repository at this point in the history
  • Loading branch information
lxfljw committed Jun 12, 2024
1 parent f2fd47d commit 3b7524f
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ function initSideBar() {
.map((dir) => {
return readDir(dir, resolve(root, dir), `pages`);
})
.map((item, index) => {
.map((item) => {
item.text = item.text.replace(
/^(\d+)-/,
(_, p1) => `${numberToChinese(p1)}、`
Expand Down
1 change: 1 addition & 0 deletions link-list/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<!-- viepress 文章列表 -->


<script setup>
import { data as posts } from './posts.data.js'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Vue3 的 diff 算法恰好符合 LeetCode [300. 最长递增子序列](https://l

假设我们有 1,2,3,4,5 五个同级节点,经过移动后变成了 1,3,4,5,2。
- 我们肉眼容易看是 2 节点移动到了最后,但是如果没有最长递增子序列的概念,我们就认为是 除了 1,其他都有位置移动。
- 如果我们引入最长递增子序列的概念,我们就认为是 1,3,4,5 这四个节点是最长的递增子序列,b 节点只是在这个子序列的末尾。
- 如果我们引入最长递增子序列的概念,我们就认为是 1,3,4,5 这四个节点是最长的递增子序列,2 节点只是在这个子序列的末尾。
- dom 操作的时候只需要做一次移动,而不是四次。


Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# 网络知识
# HTTP请求

>介绍 HTTP 之前,我们需要了解一些前置知识。
## IP 协议(Internet Protocol)

Expand All @@ -24,7 +26,25 @@ TCP 协议的主要功能有:
3. 保证数据顺序:TCP 协议保证数据包按顺序到达目的地址。


### HTTP 协议(Hypertext Transfer Protocol)
## DNS 协议(Domain Name System)

DNS 协议是用于域名解析的协议,它将域名转换成 IP 地址。

DNS 协议的主要功能有:

1. 域名解析:DNS 协议将域名转换成 IP 地址,使得用户可以方便地访问互联网资源。
2. 负载均衡:DNS 协议可以将域名请求转发到多个服务器,实现负载均衡。

DNS 的优先级:

1. 本地 DNS 服务器:如果本地 DNS 服务器中有域名的解析记录,则直接返回解析结果。
2. 主 DNS 服务器:如果本地 DNS 服务器中没有域名的解析记录,则向主 DNS 服务器请求解析结果。
3. 缓存 DNS 服务器:如果主 DNS 服务器也没有域名的解析记录,则向缓存 DNS 服务器请求解析结果。
4. 根 DNS 服务器:如果缓存 DNS 服务器也没有域名的解析记录,则向根 DNS 服务器请求解析结果。

前置知识介绍完毕,下面我们来看一下 HTTP 协议。

## HTTP 协议(Hypertext Transfer Protocol)

HTTP 协议是用于从 Web 服务器传输超文本到本地浏览器的协议。它是一个基于请求-响应模型的协议,由请求消息和响应消息构成。

Expand All @@ -34,7 +54,7 @@ HTTP 协议的主要功能有:
2. 无状态:HTTP 协议是无状态协议,即服务器不会保存关于客户的任何信息。


HTTP 分为三大部分
HTTP 请求分为三大部分

1. 请求行:包括方法、URL、HTTP 版本。

Expand All @@ -53,3 +73,29 @@ Accept-Language: zh-CN,zh;q=0.8
```

3. 请求体
```
search=hello
```

响应也是差不多的格式,但是响应头会包含状态码、服务器信息等。

```http
HTTP/1.1 200 OK
Server: nginx/1.10.1
```

那么发起 HTTP 后,只有一个域名是怎么知道目标服务器的地址呢,这就要用到上述的 IP 协议了。

但是 IP 是数字,如何把域名转换成 IP 呢?这就要用到 DNS 了, DNS 协议将域名转换成 IP 地址,使得用户可以方便地访问目标服务器。

HTTP 协议的请求流程:

1. 客户端向 DNS 服务器请求域名对应的 IP 地址。
2. DNS 服务器解析域名,返回 IP 地址和端口号。
3. 客户端向目标服务器发起 TCP 三次握手建立连接。
4. 客户端和服务器传输数据。
5. 四次挥手断开 TCP 连接。

在 HTTP/1.1 及更高版本中,可以通过 Keep-Alive 复用连接,减少 TCP 连接的建立和断开。


0 comments on commit 3b7524f

Please sign in to comment.