php telnet 获取,用telnet和php的curl库测试http
一.telnet测试http
telnet简介
Telnet协议是TCP/IP协议族的其中之一,是Internet远端登录服务的标准协议和主要方式,常用于网页服务器的远端控制,可供使用者在本地主机执行远端主机上的工作。
使用者首先在电脑执行Telnet程序,连线至目的地服务器,然后输入帐号和密码以验证身份。使用者可以在本地主机输入命令,然后让已连接的远端主机执行,就像直接在对方的控制台上输入一样。
传统Telnet会话所传输的资料并未加密,帐号和密码等敏感资料容易会被窃听,因此很多服务器都会封锁Telnet服务,改用更安全的SSH。
windows7系统中telnet
windows7默认是关闭telnet服务的,windows7启用telnet过程见 http://soft.yesky.com/204/31059704.shtml
用telnet的远程登录命令示例 telnet 127.0.0.1或者telnet localhost,如果连接成功,输入用户名、密码便可以远程控制目标主机了。
下面是重点,用telnet测试http。
比如说,我要用get和post方法获得http服务器222.31.76.182上的页面。
http报文如图所示:

http请求头的格式参见http://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE和http://royaki.iteye.com/blog/685317
(以下测试均在ubuntu系统上进行)
GET方法:
1.使用telnet连接到HTTP服务器222.31.76.182,并指定80端口
telnet 222.31.76.182 80
2.连接http服务器后,发送http请求信息:
GET /test.html HTTP/1.1
Connection:close
Host:222.31.76.182
输入上面的内容后,连续敲击两个回车,就可以看到返回的结果了。
HTTP/1.1 200 OK
Date: Mon, 18 Nov 2013 04:
46:58 GMT
Server: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
Last-Modified: Tue, 18 Jun 2013 02:32:44 GMT
ETag: "2e000000011ebf-dd-4df6487339a58"
Accept-Ranges: bytes
Content-Length: 221
Connection: close
Content-Type: text/html; charset=utf-8
Drag ME
Connection closed by foreign host.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
HTTP/1.1200OK
Date:Mon,18Nov201304:
46:58GMT
Server:Apache/2.2.17(Win32)mod_ssl/2.2.17OpenSSL/0.9.8oPHP/5.3.4mod_perl/2.0.4Perl/v5.10.1
Last-Modified:Tue,18Jun201302:32:44GMT
ETag:"2e000000011ebf-dd-4df6487339a58"
Accept-Ranges:bytes
Content-Length:221
Connection:close
Content-Type:text/html;charset=utf-8