使用 Telnet 手动发送最小 HTTP 请求

此示例演示 HTTP 是基于文本的 Internet 通信协议,并显示基本 HTTP 请求和相应的 HTTP 响应。

你可以使用 Telnet 从命令行手动发送最小 HTTP 请求,如下所示。

  1. 在端口 80 上启动到 Web 服务器 www.example.org 的 Telnet 会话:

    telnet www.example.org 80
    

    Telnet 报告你已连接到服务器:

    Connected to www.example.org.
    Escape character is '^]'.
    
  2. 输入请求行以使用 HTTP 1.1 发送 GET 请求 URL 路径/

    GET / HTTP/1.1
    
  3. 输入 HTTP 标头字段行以标识所需 URL 的主机名部分,这在 HTTP 1.1 中是必需的

    Host: www.example.org
    
  4. 输入空行以完成请求。

    Web 服务器发送 HTTP 响应,该响应显示在 Telnet 会话中。

完整的会话如下。响应的第一行是 HTTP 状态行,其中包括状态代码 200 和状态文本 OK ,表示请求已成功处理。接下来是许多 HTTP 标头字段,一个空行和 HTML 响应。

$ telnet www.example.org 80
Trying 2606:2800:220:1:248:1893:25c8:1946...
Connected to www.example.org.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.example.org

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 21 Jul 2016 15:56:05 GMT
Etag: "359670651"
Expires: Thu, 28 Jul 2016 15:56:05 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (lga/1318)
Vary: Accept-Encoding
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

(为简洁起见,从 HTML 响应中删除了 style 元素和空白行。)