对HTTP协议感到困惑

时间:2011-10-09 11:25:29

标签: http web-applications client-server protocols

我对HTTP协议感到有点困惑,因为我知道HTTP是用于提供网页以及主要在Web服务器和浏览器之间发送消息。 但似乎HTTP在许多确实使用互联网进行通信的应用程序中的任何地方使用,但不是Web应用程序(“使用Web浏览器作为客户端的应用程序”)。

我问这个是因为我开始开发iPhone应用程序(一种导航应用程序),我需要在iPhone客户端和我的服务器之间发送消息。现在人们一直告诉我使用HTTP协议,但这真的是要走的路吗?

3 个答案:

答案 0 :(得分:1)

是的,这是要走的路。你还想怎么做呢?

Web Server <-------HTTP-------> Client

客户端可以是浏览器,手机,xbox。服务器请求的接收端的任何内容都是客户端。

答案 1 :(得分:1)

您的问题是有效的,如果我可以重申,为什么我们使用HTTP进行每个服务器 - 客户端通信,而它通常用于浏览器Web服务器用例,与直接TCP通信相比效率较低。我的理由如下:

  • HTTP协议非常简单,就像技术简单中的许多东西一样,即使复杂的解决方案更有效率(除非大幅度提高),也要胜过复杂性。
  • HTTP协议是无状态的,通过简单的负载平衡技术(如循环法)添加更多计算机和平衡负载,可以更加简单地进行水平扩展。
  • 轻松找到合理且免费的HTTP服务器,让您的应用程序快速启动并运行,而不是实施自己的协议,服务器并将注意力从您想要解决的实际问题上移开。
  • 与许多方使用的任何简单技术一样,它随着时间的推移变得更好,并且通过Keep-Alive,分块传输,流水线等现代功能,您可以克服连接开销的一些缺点。

答案 2 :(得分:0)

同意从SOAP迁移到REST和QUERY是一件好事。 我们目前正在实施一个使用HTTP作为双向传输机制的系统。 回复上传到服务器的响应是标准HTTP响应,例如200 =没有正文的成功。 对查询的响应是ASCII文本页面,其答案为正文。然后我们将ASCII转回二进制以使用数据。 这种方法的优点是你只需要提供正确的URL和参数,你就可以处理所有事情。 除非你的协议栈知道如何格式化发布和获取请求,否则你需要自己做。虽然这很乏味,但在W3C Protocols中有详细记载,但是必须自己完成所有这些操作有点乏味。因此,如果您不得不这样做,那么我建议您购买一本电子书来帮助理清细节。一些例子是: HTTP