Linux 使用telnet的HTTP请求未得到任何响应

Linux 使用telnet的HTTP请求未得到任何响应,linux,http,telnet,Linux,Http,Telnet,我们使用telnet机制向服务器发送http请求并获得响应。 当使用telnet发送HTTP GET请求时,我们注意到一件奇怪的事情。 第一种方法适用于大多数环境,但不适用于任何一种环境。但是第二种方法(而不是相对路径,使用完整路径)在这种环境中运行良好 ** 方法1: ** (printf“GET/test.jsp HTTP/1.0\n接受:*/\n用户代理:看门狗\n\n;睡眠9)| telnet xx.xx.xx.xx 8093 正在尝试xx.xxx.xx.xx。。。 已连接到xx.x

我们使用telnet机制向服务器发送http请求并获得响应。 当使用telnet发送HTTP GET请求时,我们注意到一件奇怪的事情。 第一种方法适用于大多数环境,但不适用于任何一种环境。但是第二种方法(而不是相对路径,使用完整路径)在这种环境中运行良好

**

  • 方法1:
**

(printf“GET/test.jsp HTTP/1.0\n接受:*/\n用户代理:看门狗\n\n;睡眠9)| telnet xx.xx.xx.xx 8093 正在尝试xx.xxx.xx.xx。。。 已连接到xx.xx.xx.xx。 转义字符为“^]”

连接被外部主机关闭

**

  • 方法2:
**

(printf“GET HTTP/1.0\n接受:*/\n用户代理:看门狗\n\n;睡眠9)| telnet xx.xx.xx 8093

为什么method1不在一个环境中运行?我们需要在那个环境中检查一些东西吗

请给出你的建议

谢谢, Sekhar

HTTP/1.0(RFC 1945)指定以CR LF结尾的行。某些服务器可能会严格应用此规则。尝试以行结尾发送请求。发送绝对URI也保留供代理使用(RFC 1945第5.1.2节)


如果不同的行尾和URI样式对您没有帮助,您将不得不查看服务器配置/实现,因为我看不出方法1有任何错误。

除了行尾和您的accept头应该是
*/*
而不是
/
,您的第一个请求没有主机名


HTTP 1.1服务器可以在绝对请求URI或主机头中拒绝没有主机集的HTTP请求

“HTTP 1.1服务器可能在绝对请求URI或主机头中拒绝没有主机集的HTTP请求”->您能告诉我在什么情况下会发生这种情况吗?因为我们向HTTP 1.1服务器发送HTTP请求时没有主机,并且使用的是相对路径,在大多数环境中都可以正常工作。@Sekhar否,这是一个实现细节,应该与您的Web服务器制造商进行检查。RFC声明服务器可以。如果您只是修复了请求,即发出一个包含主机的有效HTTP请求(在头或URL中),并且
\r\n
要分离头,它应该只适用于所有服务器。
Trying xx.xx.xx.xx... 
Connected to xx.xx.xx.xx. 
Escape character is '^]'. 
HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Set-Cookie: JSESSIONID=91643475E80038EA8770CE6803EE320C; Path=/ 
Content-Type: text/html;charset=UTF-8 
Content-Language: zh-US 
Content-Length: 42 
Date: Mon, 03 Dec 2012 04:25:09 GMT 
Connection: close 

The Server is Running 

Connection closed by foreign host.