Windows 10下使用telnet请求得到服务器响应头的方法

作者: shisaq 日期: November 12, 2016

本来可以用MacBook Pro的Terminal的,但是MacBook Pro前段时间被小偷带走了,无奈只能用这个老旧的ThinkPad代替一个月,同时等着MacBook Pro 2016到货了。

既然用了Windows,开发过程中一定会有很多坑要踩。这两天开始学习Udacity的Web Development课程,遇到了HTTP Request的问题,目的是使用telnet命令获得服务器的响应头信息。按Udacity的视频展示的是MacOS系统,不适用Windows。于是开始了踩坑之旅。

首先打开Windows PowerShell,尝试性地使用telnet www.udacity.com 80 ,果然如下图所示,赤裸裸地失败,Windows甚至不认识telnet。

[caption id=”” align=”aligncenter” width=”978”]不识别telnet 不识别telnet[/caption]

参照Udacity推荐的一篇Microsoft官方instruction和Google上找到的一篇文章(主要针对Windows 10),我们先让Windows识别这个telnet命令,在Windows 10下,右键开始——程序和功能——启用或关闭Windows功能,在弹出的对话框中找到Telnet客户端,打上勾,点击确定:

[caption id=”” align=”aligncenter” width=”448”]Telnet客户端安装 Telnet客户端安装[/caption]

然后再打开Windows PowerShell,重新输入该命令,于是掉入了下一个坑:

[caption id=”” align=”aligncenter” width=”975”]一片空白 一片空白[/caption]

这是神马情况?啥玩意儿没有?看样子Windows已经认识了telnet了,但是为什么会啥也没有呢?先在Udacity Forum里搜搜吧,找到了这样一个帖子

原来在那片空白中,我可以继续输入代码,只是敲出来的代码只剩下了个下划线而已。于是我:

输入:GET / HTTP/1.0 ,回车;

再输入Host: www.udacity.com ,连续2次回车(这一步不能弄错,连续,2次,否则又是一个坑),出现了如下结果:

[caption id=”” align=”aligncenter” width=”290”]貌似正确的结果 貌似正确的结果[/caption]

由于暂时没有Mac系统,我还不能测试它是否正确。但至少可以表明,Windows下的这个telnet真的不好用。论坛中还有一个帖子建议用putty。详细步骤参加这个帖子就好。经测试,和我用Windows PowerShell的结果一样。不过用putty的好处是,你输入的代码,特别是GET / HTTP/1.0都可以看到了。注意大小写敏感。

另外总结几个常用HTTP响应状态代码:

200 OK 正常 302 Found 在服务器其他地方找到了 404 Not Found 这个不解释 500 Server Error 服务器挂了