我正在使用 telnet 发送 http 请求,如下所示:
telnet> open 192.168.4.135 8087
Trying 192.168.4.135...
Connected to 192.168.4.135.
Escape character is '^]'.
POST /rpc/ HTTP/1.1
HOST:192.168.4.135:8087
Content-length:18
Content-type:application/x-http-form-urlencoded
action=loadrsctype
HTTP/1.1 200 OK
Date: Thu, 17 May 2012 03:52:53 GMT
Content-Length: 45
Content-Type: text/html; charset=ISO-8859-1
return=fail&error=Configuration doesn't existHTTP/1.1 400 Bad Request
Content-Type: text/html
Connection: close
Date: Thu, 17 May 2012 03:52:53 GMT
Content-Length: 94
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
</BODY></HTML>
Connection closed by foreign host.
响应代码是 200 ,但是为什么有这样的一段:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Connection: close
Date: Thu, 17 May 2012 03:52:53 GMT
Content-Length: 94
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
</BODY></HTML>
这是服务器或 telnet 本身的输出?如何避免表现出这种情况?
- 更新 -
当我将“HTTP/1.1”更改为“http/1.1”时,我得到了正确的响应。
现在我想知道这是协议的要求还是与服务器的实现有关?
In HTTP 1.1
,所有连接都被考虑persistent
除非另有声明。
然后...我认为服务器正在接收一些虚假的换行符并回复Bad Request
.
如果你使用http/1.1
代替HTTP/1.1
可以将版本回退到该版本1.0
默认情况下,这不是持久的,并且在200 OK
响应它会断开连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)