我在C ++中制作HTTP代理;当客户端向代理发送GET
或CONNECT
请求时,代理解析数据包的HTTP头,解析其中的主机名,打开另一个到服务器目的地的套接字并发送客户端'请求。然后代理会将服务器的响应发送给客户端。
以下是代理发送给服务器的客户端的GET
和CONNECT
请求:
GET http://www.gstatic.com/generate_204 HTTP/1.1
CONNECT cr-input.getspeakit.com:443 HTTP/1.1
但是当我从服务器解析GET
响应时,我发现了400状态代码,即Bad Request
:这似乎是(来自维基百科):
格式错误的请求语法,无效的请求消息框架或欺骗性请求路由。
我是否在GET
请求中向服务器发送了错误的参数?
答案 0 :(得分:0)
GET。语法没有错,但如果请求没有被您伪造,并且它真的要访问www.gstatic.com,您可以检查自己任何类型的请求都会生成40x状态代码。这是一个用于Google卸载静态内容的域名。是否仍然如此以及为什么它会为请求返回40x。转到Google。
CONNECT。如果要将CONNECT转发到服务器,这是错误的。 CONNECT旨在绕过您的代理打开端到端二进制连接。顺序是: