一、用Telnet连接HTTP服务器
众所周知,WEB客户端可以是浏览器、机器人、搜索引擎等[1]。当然也可以是像telnet那样的程序。
本文主要介绍如何用telnet向HTTP服务器提交请求
用Telnet连接HTTP服务器的格式
telnet hostname port_number
hostname可以是主机的域名,也可以是IP地址
protnumber为HTTP服务所监听的端口号,默认80
第一次成功的连接
//进行连接,默认80端口 telnet home.sisca.info 80 Trying 173.83.46.2... Connected to home.sisca.info. //服务器等待请求 Escape character is '^]'. //客户端的请求从这里开始 //以下是三行代码(包括空行[回车]符)需要粘贴到telnet中去 GET / HTTP/1.1 Host: home.sisca.info HTTP/1.1 200 OK //服务器的响应 Date: Fri, 18 Feb 2011 08:30:43 GMT Server: Apache X-Powered-By: PHP/5.2.12 Transfer-Encoding: chunked Content-Type: text/html #以下是<body>部分,省略
注意:在HTTP1.1协议下,GET / HTTP/1.1
加上Host
是最小的HTTP请求。[2]
另外,您可能已经注意到,服务器返回HTTP报文后,似乎仍然在等待什么。其实在HTTP/1.1协议下,每次响应后服务器的默认操作是“保持连接”(Keep-Alive)。也就是好像有这行请求:Connection: Keep-Alive
一样。
如果您希望服务器返回之后立即断开连接,需要在第三行的地方插入Connection: Close
像这样:
GET / HTTP/1.1 Host: home.sisca.info Connection: Close #这行留空,为"\n"
这里,给Connection
字段一个小结:它只有Keep-Alive
和Close
两个选项。
提交一个表单
提交一个表单有两种方法:
- GET
- POST
第一种方法提交的表单会显式地添加在URL后,以参数形式呈现;
第二种方法则会在HTTP报文中传送,可以允许很大的长度,而且保密性好。
提交表单的方法,请参见下一讲。
References:
[1] O’Reilly – HTTP Pocket Reference Chapter1.1 What’s HTTP
[2] O’Reilly – HTTP Pocket Reference Chapter1.2.3 Comment 2
版权声明
本文出自 Lesca 技术宅,转载时请注明出处及相应链接。
本文永久链接: https://www.lesca.cn/archives/connect-to-http-server-with-telnet.html