-4

我正在尝试编写一个与 Web 服务器通信的应用程序。我创建了一个服务器,将其设置为代理,然后我收到以下消息:

GET http://SOMETHING.SG/ HTTP/1.1
Host: SOMETHING
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: [...SOMETHING...]
Connection: keep-alive

1)这些行在说什么?(例如壁虎)

2) 是否可以在没有这些行的情况下创建 GET 消息?

3)有什么东西会随着时间的推移而改变,并且不起作用?

4) 是否可以创建一个 C++ 内置库对我有什么用?

5-8) 与 HTTP-POST 相同的问题

提前致谢。

4

2 回答 2

4

这是一个 HTTP/1.1 GET 请求http://index.hu/。要完全理解整个请求,您可能应该阅读HTTP/1.1 规范 (RFC2616)

但是快速总结一下:

  • Host - 被请求资源的主机
  • User-Agent - 描述用于访问资源的用户代理的字符串。此用户代理建议您使用的是 Firefox。Firefox 的布局引擎称为 Gecko。
  • 接受- 给出所请求资源的首选 MIME 类型。在这种情况下,请求者希望以 HTML 格式接收资源。
  • Accept-Language - 给出所请求资源的首选语言。
  • Accept-Encoding - 给出所请求资源的首选编码。
  • Cookie - 由RFC2109定义的用于使用 cookie的扩展标头。
  • 连接- 指定连接选项。在这种情况下,keep-alive请求持久连接。

并非所有这些标题都是必需的,您可能还想使用更多标题。规范中给出了所有标题的描述。

有许多 C++ 库可以为您构造和发送 HTTP 请求。一个流行的是libcurl。还有官方教程

于 2013-03-25T15:41:19.840 回答
2

libcurl就是这样做的。它包含允许您以编程方式执行 GET/POST 请求的 HTTP 客户端。

于 2013-03-25T15:39:18.880 回答