这个问题基本上还是个站在巨人的肩膀上走或者是自己走的问题。
HTTP有很多不同场景下的现成通信协议,如REST、WebServices、SOAP等,这些框架大部分已经很成熟,构建开发的周期可以大大的缩短。TCP协议尤其是服务端的开发则相对复杂很多,当然,很多人说目前服务端也有了不少现成的框架,没错,但是这些框架里面涉及到的内容往往非常庞大,如阻塞、重连、异常等等,理解起来也会比较耗费时间。因此,从开发效率上讲,应当是首选HTTP协议。
当然很多实时性要求比较高的应用场景,如实时推送就不得不使用socket长链接的方式来实现,因此在实时性领域TCP就必不可少。
另外,从灵活性的角度上讲,tcp较HTTP更为底层,属于传输层,使用自定义协议的时候将会更加灵活,协议带来的包头数据量容易控制,因此从传输效率和灵活性的角度上将TCP更加具有优势。
综上所述,TCP还是HTTP是一个需要综合考量的问题。不过目前在计算资源和网络资源过剩的情况下,还是首推HTTP协议的,毕竟时间就是金钱嘛!
网友评论