windows下使用telnet测试HTTP

windows下使用telnet测试HTTP

我正在学习 http,并尝试使用 telnet 发送我自己的 http 请求。

在命令提示符中,我输入:

telnet google.com 80

结果:屏幕清除并且我看到一个闪烁的光标。1. 为什么我看不到任何表明我已连接的指示?

现在,尝试输入 http 命令(获取 index.html...)我看到光标在输入时向右移动,但我没有看到屏幕上出现字母。只有空白。2. 这是为什么?

(使用windows7 64位)

答案1

HTTP 并非基于 telnet 协议。使用 telnet 作为“测试”HTTP 服务器的基础实际上存在一些问题。首先,telnet 在建立 TCP 连接后会立即发送一些额外字节来设置会话参数。其次,HTTP 不会回显远程对等端发送的数据。第三,当发送初始会话数据或遇到协议违规时,良好的 IPS 设备可以断开与 HTTP 端口的连接。

使用 telnet 客户端测试 HTTP 服务器充其量只是一种黑客行为。建立 TCP 会话后,客户端将显示空白屏幕,并且仅显示服务器发回的内容。如果您聪明的话,您可能能够在许多服务器上检索页面……但我认为这是不好的做法。请阅读有关如何格式化请求的 HTTP 协议GET

一个基本的 http 请求如下:

获取/HTTP/1.0
 

请注意请求后的额外一行。完整的请求以空白换行符结束。

答案2

为什么我看不到任何表明我已连接的迹象?

为什么服务器会发送额外的不需要的数据并占用更多带宽?但是您已连接,您可以测试一下。

尝试输入HTTP/1.0并按 [enter]。您应该会收到响应。
(包含错误,但通常足以测试网络服务器是否已启动并正在运行。)

打字时,我看到光标向右移动,但是屏幕上没有出现字母。只有空白。

这是由于 Windows Telnet 造成的。默认情况下,它禁用本地回显。

相关内容