我是全栈应用程序开发的新手。我有一个iOS应用程序,它将通过JSON与后端服务器(主要是node.js / MongoDB)进行通信。我知道大多数应用程序使用HTTP POST / GET发送接收数据,但我想知道如果我使用原始TCP连接并使用我自己的轻量级协议通过该连接进行通信,是否可以减少发送/接收数据的HTTP开销。在这种情况下不使用HTTP会有什么缺点?
答案 0 :(得分:1)
从程序员的角度来看,HTTP(S)客户端更容易使用;使用TCP流在大多数语言中工作更多;你自己必须做错误和连接处理。
此外,您必须自己关心传输安全性,而大多数HTTPS客户端和服务器都带有用于身份验证和加密的扩展选项。
答案 1 :(得分:1)
您正在重新发明轮子,需要投入大量精力投入到现有实施所涵盖的功能中,其中一些功能现已完善多年。怀疑您在保持假定的性能优势的同时,您将获得相同的稳定性。你不仅需要编写代码,还要保持代码。
在重新发明轮子时你可能会做错事如果你不得不提出这个问题,你很可能缺乏实施正确协议的技能。即使是经验丰富的开发人员,单独正确实现身份验证和授权并不容易。通过默默无闻的安全性并不重要;)这只是冰山一角。我想到了错误处理,会话和连接维护。 仍然我们只是冰山一角。
根据Donald Knuth,你做了过早优化,这是所有邪恶的根源:
我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源。然而,我们不应该在那个关键的3%中放弃我们的机会。"
您的应用程序逻辑比战斗测试的HTTP实现更有可能成为瓶颈。