telnet与主机端口建立TCP连接

全篇共 1605 字。按500字/分钟阅读速度,阅读完预计需要 3.2 分钟。

用HomeBrew安装telnet终端工具。

brew install telnet

用telnet建立TCP连接,使用HTTP协议规范的请求头格式发起HTTP请求。告诉telnet你要向哪个主机的哪个端口建立链接,主机地址可以是IP地址或是域名,这里我访问自己网站的80端口。

telnet shuaihuajun.com 80

GET /article HTTP/1.1
HOST: www.shuaihuajun.com
# 这里需要一个空行
# 从这里开始是响应消息

当输入完请求头,并完成两次回车,以在请求头后添加一个空行。紧接着从空行后打印出的字符,就是标准的HTTP响应消息:包括响应消息头和响应消息体两个部分,也由一个空行分隔。注意看请求报文的起始行,它说明了要做些什么。同理下方响应报文的起始行说明发生了什么。

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 77557
ETag: W/"12ef5-ePX6fSHH2UynIGNYrGmv+I6S+go"
Vary: Accept-Encoding
Set-Cookie: shj=s%3Azff-G_PoW8srfJohY6V5jenF2Sp8bZ6G.wBeXlzzyQk6onu8yMyzEf0tVN9HfiQwqqNhrrvfQCYg; Path=/; Expires=Sun, 09 Aug 2020 08:01:25 GMT; HttpOnly
Date: Sun, 02 Aug 2020 08:01:25 GMT
Connection: keep-alive

<!DOCTYPE html><html><head><meta chars...

在上面的GIF中的响应消息中,打印了访问我网站/article时返回的所有HTML代码。再来尝试向我的网站不存在的路径发起HTTP请求,看看响应消息又是什么样子的。

从上面这个GIF演示中可以清楚的分辨请求头、响应头、响应体。

telnet shuaihuajun.com 80

GET /bye HTTP/1.1
HOST: www.shuaihuajun.com

HTTP/1.1 404 Not Found
X-Powered-By: Express
Content-Security-Policy: default-src 'none'
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 142
Vary: Accept-Encoding
Set-Cookie: shj=s%3Az63jqYdFMVAnYqShWqil2fzJtms77h8y.eY7w13%2Bop8ux8mtzwMTL1BNDSVmuNMkcrtvNnyruGEg; Path=/; Expires=Sun, 09 Aug 2020 08:03:31 GMT; HttpOnly
Date: Sun, 02 Aug 2020 08:03:31 GMT
Connection: keep-alive

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /bye</pre>
</body>
</html>
原创作者 » 陈帅华
版权声明 » 自由转载-保持署名-非商用-非衍生
发布日期 » 2020年8月1日 周六
更新日期 » 2020年8月2日 周日
上一篇 » Deno学习手记
下一篇 » HomeBrew安装与配置
:)记录此刻想法
请选择登录方式,开始记录你的想法。
授权微博登录
授权Github登录