|
|
@ -57,7 +57,7 @@ Connection established!
|
|
|
|
Connection established!
|
|
|
|
Connection established!
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
对于一次浏览器请求会打印出多条信息;这些连接可能是浏览器请求页面和请求出现在浏览器 tab 页中的 `favicon.ico`,或者浏览器可能重试了连接。浏览器期望使用 HTTP 交互,不过我们并未恢复任何内容。当 `stream` 在循环的结尾离开作用域并被丢弃,其连接将被关闭,作为 `TcpStream` 的 `drop` 实现的一部分。浏览器有时通过重连来处理关闭的连接,因为这些问题可能是暂时的。现在重要的是我们成功的处理了 TCP 连接!
|
|
|
|
对于一次浏览器请求会打印出多条信息;这些连接可能是浏览器请求页面和请求出现在浏览器 tab 页中的 `favicon.ico`,或者浏览器可能重试了连接。浏览器期望使用 HTTP 交互,不过我们并未回复任何内容。当 `stream` 在循环的结尾离开作用域并被丢弃,其连接将被关闭,作为 `TcpStream` 的 `drop` 实现的一部分。浏览器有时通过重连来处理关闭的连接,因为这些问题可能是暂时的。现在重要的是我们成功的处理了 TCP 连接!
|
|
|
|
|
|
|
|
|
|
|
|
记得当运行完特定版本的代码后使用 <span class="keystroke">ctrl-C</span> 来停止程序,并在做出最新的代码修改之后执行 `cargo run` 重启服务。
|
|
|
|
记得当运行完特定版本的代码后使用 <span class="keystroke">ctrl-C</span> 来停止程序,并在做出最新的代码修改之后执行 `cargo run` 重启服务。
|
|
|
|
|
|
|
|
|
|
|
@ -390,4 +390,4 @@ fn handle_connection(mut stream: TcpStream) {
|
|
|
|
|
|
|
|
|
|
|
|
好极了!我们有了一个 40 行左右 Rust 代码的小而简单的 server,它对一个请求返回页面内容而对所有其他请求返回 `404` 响应。
|
|
|
|
好极了!我们有了一个 40 行左右 Rust 代码的小而简单的 server,它对一个请求返回页面内容而对所有其他请求返回 `404` 响应。
|
|
|
|
|
|
|
|
|
|
|
|
不过因为 server 运行于单线程中,它一次只能处理一个请求。让我们模拟一些慢请求来看看这如何会称为一个问题。
|
|
|
|
不过因为 server 运行于单线程中,它一次只能处理一个请求。让我们模拟一些慢请求来看看这如何会称为一个问题。
|
|
|
|