Http与Socket小谈

http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解)。

Http

定义

基于应用层的超文本传输协议。通常承载于TCP/IP协议之上,有时也承载于TLS或SSL协议层之上,即https。

特点

  • 必须是客户端请求,服务端才能响应,无法由服务端自主发起。
  • 网络连接为短连接,在请求结束后,就会自动释放本次连接。

优点

  • 基于应用层的接口,简单易用,非常容易上手,对开发者要求较低

缺点

  • 传输速度有限,数据量较大
  • 对服务器性能要求较高
  • 数据传输过程中安全性有限

适用范围

  • 需要快速开发的应用
  • 对数据实时交互性要求不太高的应用
  • 对数据安全性不是太高要求的应用
  • 对服务器性能较差的应用

Socket

定义

基于TCP/IP的网络API,处于传输层,用于提供给程序员操作TCP/IP网络传输的应用程序接口。通常称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输。是应用层和传输层之间的桥梁。

特点

  • 建立socket连接至少需要一对套接字(socket),一个运行在客户端,一个运行在服务端
  • 通常Socket连接是基于TCP连接的,因此属于长连接
  • Socket一旦建立连接,通信双方即可持续相互发送数据内容,直到双方连接断开

优点

  • 传输数据可自定义,数据量很小
  • 数据传输时间段,性能高
  • 多用于客户端与服务端之间的数据实时交互
  • 可以使用加密手段,数据安全性很高

缺点

  • 相对于http协议传输,开发量较大
  • 对开发人员的开发水平要求较高,增加开发量

适用范围

  • 适用于对传输速度要求高的应用,如网络游戏
  • 适用于对数据安全性要求较高的应用中,如银行内部数据交互
  • 对产生流量巨大的应用
posted @ 2016-10-31 19:25  Silktree  阅读(207)  评论(0编辑  收藏  举报