From fa2702d4858fc70df6f5ccb4e76d6de4eed2c990 Mon Sep 17 00:00:00 2001
From: YangFong <70502828+YangFong@users.noreply.github.com>
Date: Wed, 2 Mar 2022 15:08:25 +0800
Subject: [PATCH] docs: optimized the readability of statements in ch20-01
---
src/ch20-01-single-threaded.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/ch20-01-single-threaded.md b/src/ch20-01-single-threaded.md
index 6dfad6f..24799bb 100644
--- a/src/ch20-01-single-threaded.md
+++ b/src/ch20-01-single-threaded.md
@@ -23,6 +23,7 @@ $ cd hello
```rust,no_run
{{#rustdoc_include ../listings/ch20-web-server/listing-20-01/src/main.rs}}
```
+
示例 20-1: 监听传入的流并在接收到流时打印信息
`TcpListener` 用于监听 TCP 连接。我们选择监听地址 `127.0.0.1:7878`。将这个地址拆开,冒号之前的部分是一个代表本机的 IP 地址(这个地址在每台计算机上都相同,并不特指作者的计算机),而 `7878` 是端口。选择这个端口出于两个原因:通常 HTTP 接受这个端口而且 7878 在电话上打出来就是 "rust"(译者注:九宫格键盘上的英文)。
@@ -107,7 +108,7 @@ message-body
请求行接下来的部分是 */*,它代表客户端请求的 **统一资源标识符**(*Uniform Resource Identifier*,*URI*) —— URI 大体上类似,但也不完全类似于 URL(**统一资源定位符**,*Uniform Resource Locators*)。URI 和 URL 之间的区别对于本章的目的来说并不重要,不过 HTTP 规范使用术语 URI,所以这里可以简单的将 URL 理解为 URI。
-最后一部分是客户端使用的HTTP版本,然后请求行以 **CRLF序列** (CRLF代表回车和换行,*carriage return line feed*,这是打字机时代的术语!)结束。CRLF序列也可以写成`\r\n`,其中`\r`是回车符,`\n`是换行符。 CRLF序列将请求行与其余请求数据分开。 请注意,打印CRLF时,我们会看到一个新行,而不是`\r\n`。
+最后一部分是客户端使用的 HTTP 版本,然后请求行以 **CRLF 序列** (CRLF 代表回车和换行,*carriage return line feed*,这是打字机时代的术语!)结束。CRLF 序列也可以写成 `\r\n`,其中 `\r` 是回车符,`\n` 是换行符。 CRLF 序列将请求行与其余请求数据分开。 请注意,打印 CRLF 时,我们会看到一个新行,而不是 `\r\n`。
观察目前运行程序所接收到的数据的请求行,可以看到 `GET` 是 method,*/* 是请求 URI,而 `HTTP/1.1` 是版本。
@@ -153,7 +154,7 @@ HTTP/1.1 200 OK\r\n\r\n
### 返回真正的 HTML
-让我们实现不只是返回空页面的功能。在项目根目录创建一个新文件,*hello.html* —— 也就是说,不是在 `src` 目录。在此可以放入任何你期望的 HTML;列表 20-4 展示了一个可能的文本:
+让我们实现不只是返回空页面的功能。在项目根目录创建一个新文件,*hello.html* —— 而不是在 *src* 目录中。在此可以放入任何你期望的 HTML;列表 20-4 展示了一个可能的文本:
文件名: hello.html
@@ -195,7 +196,7 @@ HTTP/1.1 200 OK\r\n\r\n
首先,将与 */* 请求相关的数据硬编码进变量 `get`。因为我们将原始字节读取进了缓冲区,所以在 `get` 的数据开头增加 `b""` 字节字符串语法将其转换为字节字符串。接着检查 `buffer` 是否以 `get` 中的字节开头。如果是,这就是一个格式良好的 */* 请求,也就是 `if` 块中期望处理的成功情况,并会返回 HTML 文件内容的代码。
-如果 `buffer` **不** 以 `get` 中的字节开头,就说明接收的是其他请求。之后会在 `else` 块中增加代码来响应所有其他请求。
+如果 `buffer` **不** 以 `get` 中的字节开头,就说明接收的是其他请求。之后会在 `else` 块中增加代码来响应所有其他请求。
现在如果运行代码并请求 *127.0.0.1:7878*,就会得到 *hello.html* 中的 HTML。如果进行任何其他请求,比如 *127.0.0.1:7878/something-else*,则会得到像运行示例 20-1 和 20-2 中代码那样的连接错误。