我已经实现了一个客户端服务器的jave程序,使用TCP进行分配。现在我来解释为什么我选择了TCP通讯时如HTTP其他替代品也可.. 所以我需要一些原因,TCP是比另一个更好..如何比HTTP通信更好地使用TCP通信?
2
A
回答
7
HTTP不是替代到TCP。它是一个建立在TCP之上的协议。
由于HTTP在基本的请求/响应基础上工作,自定义交互协议在TCP上实现比在HTTP上执行效率高得多。
在纯TCP连接上,两端都可以随时发送消息。在HTTP上,服务器无法主动向客户端发送消息。它需要等待客户端发送请求。
HTTP的一个优点是它几乎可以普遍理解:所有语言都有服务器和客户端库,有很好理解的缓存和代理机制,以及内置的各种内容协商机制。
所以这是高级别或更低级别的抽象之间的传统折衷:
- 较低级别的抽象(TCP)提供高flexbility和实现几乎所有的可能性,而它并非如此简单易用
- 更高层次的抽象(HTTP)提供了更多的内置功能,而且更容易支持,但附加功能也难以增加
3
4
HTTP是TCP的顶层上的协议。它提供了特定的功能并缺少其他功能(最显着的状态和服务器启动通信的能力)。如果你需要HTTP使得硬件或不可能的东西,那么使用别的东西是个好主意。或者你可以把这些功能混淆在HTTP之上,这似乎是最受欢迎的选择(可能是因为“只有端口80在任何地方都是开放的,所以让我们用它来解决所有问题”),但通常会导致到相当讨厌的黑客。
相关问题
- 1. TCP通信
- 2. TCP IP通信
- 3. 通过TCP/IP或HTTP使用C#.net通信到Windows Mobile?
- 4. 如何在iPhone上使用HTTP通信?
- 5. 用于手机通信的SMS,TCP,UDP更好吗?
- 6. Android HTTP通信:
- 7. TCP Socket通信限制
- 8. Xml webservice和Tcp通信
- 9. 循环TCP通信C++
- 10. 直接TCP/IP通信
- 11. TCP套接字通信
- 12. 如何通过JavaScript通过TCP套接字进行通信?
- 13. Wireshark无法通过TCP检测本地进程通信
- 14. 用于tcp通信的线程
- 15. 更好的socket通信系统
- 16. 测试通过HTTP进行通信的单元的好方法
- 17. 与http服务器通信
- 18. Android的安全HTTP通信
- 19. Solr与HTTP的通信
- 20. ecdsa通信比特币库
- 21. 如何最好地在AppDomains之间进行通信?
- 22. 如何通过时间戳最好地保存聊天信息?
- 23. 如何使用HTTP处理程序进行client2client通信?
- 24. Tcp客户端双向通信帮助
- 25. .Net TCP客户端通信问题
- 26. TCP与UDP的微处理器通信
- 27. Indy TCP通信和换行符
- 28. 网络通信TCP [代码设计]
- 29. 关于TCP通信的ValueError Python
- 30. TCP套接字通信正在损坏
Http使用TCP,所以比较它们并不是真的有效......大概问题是“为什么你会选择通过TCP进行合理的实现,当更多的开放,标准化的格式,如http已经存在”? – Nathan 2011-05-12 06:55:07