Socket 和 http 的区别

Socket 和 http 的区别

 

 

HTTP

 

       超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

 

 

Http请求的协议

 

  • http协议
  • 基于http协议的soap协议

 

优点

 

  • 基于应用级的接口使用方便
  • 要求的开发水平不高,容错性强

 

缺点

 

  • 传输速度慢,数据包大
  • 如实现实时交互,服务器性能压力大
  • 数据传输安全性差

 

Http显著特点

 

       HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

 

  1. 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
  2. 在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

 

适用场景:一般用于实时性要求不那么高的情况

 

  • 信息反馈
  • 图片上传
  • 获取新闻信息
  • 公司OA服务
  • 互联网服务

 

 

 

 

Socket

 

      Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

 

 

socket可以使用TCP或UDP协议

 

TCP

 

      传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。

 

 

UDP

 

      广播式数据传输,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

 

 

优点

  • 传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低
  • 传输数据时间短,性能高
  • 适合C/S之间信息实时交互
  • 可以加密,数据安全性高

 

缺点

  • 需要对传输的数据进行解析,转化为应用级的数据
  • 对开发人员的开发水平要求高
  • 相对于Http协议传输,增加了开发量

适用场景:一般用于比较即时的通信和实时性较高的情况

  • 推送
  • 聊天
  • 保持心跳长连接
  • 网络游戏
  • 银行交互
  • 支付

 

参考:

http://blog.csdn.net/zeng622peng/article/details/5546384

 

猜你喜欢

转载自youyu4.iteye.com/blog/2357739