使用HTTP与原始TCP在应用程序和后端之间进行通信

时间:2016-03-14 14:43:05

标签: node.js mongodb http tcp

我是全栈应用程序开发的新手。我有一个iOS应用程序,它将通过JSON与后端服务器(主要是node.js / MongoDB)进行通信。我知道大多数应用程序使用HTTP POST / GET发送接收数据,但我想知道如果我使用原始TCP连接并使用我自己的轻量级协议通过该连接进行通信,是否可以减少发送/接收数据的HTTP开销。在这种情况下不使用HTTP会有什么缺点?

2 个答案:

答案 0 :(得分:1)

从程序员的角度来看,HTTP(S)客户端更容易使用;使用TCP流在大多数语言中工作更多;你自己必须做错误和连接处理。

此外,您必须自己关心传输安全性,而大多数HTTPS客户端和服务器都带有用于身份验证和加密的扩展选项。

答案 1 :(得分:1)

  1. 您正在重新发明轮子,需要投入大量精力投入到现有实施所涵盖的功能中,其中一些功能现已完善多年。怀疑您在保持假定的性能优势的同时,您将获得相同的稳定性。你不仅需要编写代码,还要保持代码。

  2. 在重新发明轮子时你可能会做错事如果你不得不提出这个问题,你很可能缺乏实施正确协议的技能。即使是经验丰富的开发人员,单独正确实现身份验证和授权并不容易。通过默默无闻的安全性并不重要;)这只是冰山一角。我想到了错误处理,会话和连接维护。 仍然我们只是冰山一角。

  3. 根据Donald Knuth,你做了过早优化,这是所有邪恶的根源

      

    我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源。然而,我们不应该在那个关键的3%中放弃我们的机会。"

    您的应用程序逻辑比战斗测试的HTTP实现更有可能成为瓶颈。