From 60999cadbf15d5c02c1eb535429d46845dd8dbc1 Mon Sep 17 00:00:00 2001 From: kwkw Date: Sun, 21 Apr 2024 16:56:10 +0800 Subject: [PATCH] Update ch20-01-single-threaded.md --- src/ch20-01-single-threaded.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch20-01-single-threaded.md b/src/ch20-01-single-threaded.md index 2f924fc5..7013dd31 100644 --- a/src/ch20-01-single-threaded.md +++ b/src/ch20-01-single-threaded.md @@ -73,7 +73,7 @@ Connection established! 我们创建了一个 `http_request` 变量来收集浏览器发送给服务端的请求行。这里增加了 `Vec<_>` 类型注解表明希望将这些行收集到一个 vector 中。 -`BufReader` 实现了 `std::io::BufRead` trait,它提供了 `lines` 方法。`lines` 方法通过遇到换行符(newline)字节就切分数据流的方式返回一个 `Result` 的迭代器。为了获取每一个 `String`,通过 map 并 `unwrap` 每一个 `Result`。如果数据不是有效的 UTF-8 编码或者读取流遇到问题时,`Result` 可能是一个错误。一如既往生产环境的程序应该更优雅地处理这些错误,不过出于简单的目的我们选择在错误情况下停止程序。 +`BufReader` 实现了 `std::io::BufRead` trait,它提供了 `lines` 方法。`lines` 方法通过遇到换行符(newline)字节就切分数据流的方式返回一个 `Result` 的迭代器。为了获取每一个 `String`,通过 map 并 `unwrap` 每一个 `Result`。如果数据不是有效的 UTF-8 编码或者读取流遇到问题时,`Result` 可能是一个错误。一如既往生产环境的程序应该更优雅地处理这些错误,不过出于简单的目的我们选择在错误情况下停止程序。 浏览器通过连续发送两个换行符来代表一个 HTTP 请求的结束,所以为了从流中获取一个请求,我们获取行直到它们不为空。一旦将这些行收集进 vector,就可以使用友好的 debug 格式化打印它们,以便看看 web 浏览器发送给服务端的指令。