使用telnet获取网站标题

使用telnet获取网站标题

我有一个问题,是否可以使用telnet获取网站标题?网站看起来像这样domain.name.server.com/~USER(只是示例)。我想通过 telnet 获取它的标头。

telnet domain.name.server.com/~USER 80<-- 不起作用

telnet domain.name.server.com 80有效,但我需要得到〜用户。有可能这样做吗?

答案1

telnet domain.name.server.com 80然后使用

HEAD /~USER HTTP/1.1
Host: domain.name.server.com

(然后你必须再打Enter一次。)

现在它应该显示该页面的标题。

举一个现实生活中的例子:

$ telnet unix.stackexchange.com 80                 
Trying 198.252.206.16...
Connected to unix.stackexchange.com.
Escape character is '^]'.
HEAD /questions/237635/using-telnet-to-get-website-header HTTP/1.1
Host: unix.stackexchange.com

HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=60
Content-Length: 70679
Content-Type: text/html; charset=utf-8
Expires: Wed, 21 Oct 2015 19:27:43 GMT
Last-Modified: Wed, 21 Oct 2015 19:26:43 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
X-Request-Guid: dbf9d0f6-0ca4-423f-98f0-4cdf2bf51bf1
Set-Cookie: prov=08886524-c640-40ad-a0ee-246db3219228; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Wed, 21 Oct 2015 19:26:43 GMT

Connection closed by foreign host.

答案2

如果您可以使用wget而不是 telnet,则可以通过一个命令获取所有标头:

wget -q -S -O - domain.name.server.com/~USER | : 2>&1
  • -q关闭正常的日志消息传递
  • -S打开来自服务器的标头日志记录
  • -O -将下载文件的内容定向到 STDOUT
  • | :将下载文件的内容通过管道传递给 no-op 实用程序:。这有效地防止了下载整个文件,如果文件很大,这将是有利的
  • 2>&1(可选)将记录的标头重定向到 STDOUT

例如:

$ wget -q -S -O - unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header | :
  HTTP/1.1 200 OK
  Cache-Control: public, no-cache="Set-Cookie", max-age=49
  Content-Type: text/html; charset=utf-8
  Expires: Wed, 21 Oct 2015 21:22:21 GMT
  Last-Modified: Wed, 21 Oct 2015 21:21:21 GMT
  Vary: *
  X-Frame-Options: SAMEORIGIN
  X-Request-Guid: 5ac03697-68fa-4be5-9f32-2905ec3eff38
  Set-Cookie: prov=5d9866f4-9d98-4587-a7cc-f6ea5cd76075; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
  Date: Wed, 21 Oct 2015 21:21:32 GMT
  Content-Length: 76585
$ 

答案3

Curl 也是查看 HTTP 标头的一种简洁方法:

curl -v http://unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header

答案4

您还可以使用 openssl 而不是 telnet 通过 https 执行此操作。有一个例子本教程我最近发布的:

openssl s_client -connect domain.name.server.com:443
HEAD /~USER HTTP/1.0
Host: domain.name.server

相关内容