繁体   English   中英

使用telnet的HTTP请求没有得到任何响应

[英]HTTP request using telnet not getting any response

我们使用telnet机制向服务器发送http请求并获取响应。 使用telnet发送HTTP GET请求时,我们注意到一件奇怪的事情。 第一种方法适用于大多数环境,但它不适用于其中一种环境。 但第二种方法(而不是相对路径,使用完整路径)在这种环境下工作正常。

**

  • 方法一:

**

(printf“GET /test.jsp HTTP / 1.0 \\ nAccept:* / * \\ nUser-Agent:WatchDog \\ n \\ n”; sleep 9)| telnet xx.xx.xx.xx 8093尝试xx.xxx.xx.xx ...已连接到xx.xx.xx.xx. 逃脱角色是'^]'。

外部主机关闭连接。

**

  • 方法2:

**

(printf“GET http://xx.xx.xx.xx:8093 / test.jsp HTTP / 1.0 \\ nAccept:* / * \\ nUser-Agent:WatchDog \\ n \\ n”; sleep 9)| telnet xx.xx.xx.xx 8093

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. 

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

请给出你的建议......

谢谢,Sekhar

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

如果不同的行结尾和URI样式没有帮助,你将不得不查看服务器配置/实现,因为我看不出方法1有什么问题。

除了行结尾必须是\\ r \\ n和你的接受标题应该是*/*而不是/ ,你的第一个请求没有主机名。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM