【问题标题】:http client got bad request page from googlehttp客户端从谷歌得到错误的请求页面
【发布时间】:2012-03-28 03:29:17
【问题描述】:

我向 google 发送了以下 http 请求,但它返回了错误的请求页面。我的要求有什么问题吗?我正在用 C++ 实现代理服务器。我将客户的请求重定向到他们想要连接的服务器。在重定向之前,我在请求中插入了“\r\nConnection: close”。我插入的位置错了吗?谢谢。 (我用“@@@”包围请求)

@@@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:***

@@@

【问题讨论】:

    标签: http connection request bad-request


    【解决方案1】:

    根据规范,您所拥有的内容并不正确,尽管如果某些服务器确实响应了它(但不是 Google 的),我不会感到惊讶。

    • Proxy-Connection 用词不当,not needed at all

    • GET 请求应提供相对路径,而不是绝对路径。明确一点:客户端确实需要在 GET 标头中发送完整地址,但代理需要将其提取并重写,使 GET 携带路径,而 Host 标头携带主机名。

    要尝试几个简单的实验,只需 telnet google.com 80 并复制粘贴您的请求,然后再添加几个 CRLF。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多