我向谷歌发送了以下http请求,并返回了错误的请求页面。我的要求有什么不对吗?我正在用C ++实现代理服务器。我重定向了客户'请求他们想要连接的服务器。在重定向之前,我插入了" \ r \ n连接:关闭"对请求。我插入的位置错了吗?谢谢。 (我使用" @@@"围绕请求)
@@@GET http://www.google.com.tw/ HTTP/1.1
Host: www.google.com.tw
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-tw,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Connection: close
Cookie:***
@@@
答案 0 :(得分:0)
你所拥有的内容并不符合规格,但如果某些服务器实际响应它(但不是谷歌的话)我也不会感到惊讶。
代理连接用词不当,not needed at all。
GET请求应提供相对路径,而不是绝对路径。要明确:客户端确实需要在GET头中发送一个完整的地址,但是代理需要提取它并重写它以便GET携带路径,而Host头带有主机名。
要尝试几个简单的实验,只需telnet google.com 80
并复制粘贴您的请求后跟几个CRLF。