HTTP TCP UDP

本文讲述HTTP、TCP、UDP的基本概念以及它们之间的区别和联系。

一. HTTP

  1. HTTP是什么

HTTP是基于TCP/IP 协议的一种应用层协议,它使用TCP协议提供的服务。换句话说HTTP底层封装的就是TCP/IP协议。主要解决如何包装数据。

  1. HTTP连接

http连接 = 以http协议为通信协议的tcp连接

http短连接 = 以http协议为通信协议的,请求一次就断开的tcp连接

http长连接 = 以http协议为通信协议的,请求多次才断开的tcp连接(这个是为了通过减少建立tcp连接的次数达到节省两端资源的目的)

二. TCP

  1. TCP是什么

TCP协议是一种传输层的协议,它使用IP协议提供的服务。而Socket是对TCP/IP协议的封装,所以Socket本身并不是一个协议,而是一个调用接口(API)。换句话说就是我们可以通过调用Socket的接口来实现TCP或者UDP传输。

三. UDP

  1. UDP是什么

UDP是一个面向无连接的传输层协议,采用该协议不需要两个应用程序先建立连接。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性差。

四. TCP和UDP的区别

基本区别

  1. 基于连接与无连接
  2. TCP要求系统资源较多,UDP较少
  3. UDP程序结构较简单
  4. 流模式(TCP)与数据报模式(UDP)
  5. TCP保证数据正确性和可靠性,UDP可能丢包
  6. TCP保证数据顺序,UDP不保证

通讯上的区别

TCP的特点是面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。

UDP是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。根本不关心对方是否存在,是否发送了数据。它的特点是通讯速度比较快。大家都知道TCP是要经过三次握手的,而UDP没有。

五. HTTP TCP UDP各自使用场景

Socket实现服务器与客户端之间的物理连接,并进行数据传输。主要有TCP/UDP两个协议。Socket处于网络协议的传输层。

  1. HTTP

Http请求主要有http协议,基于http协议的soap协议,常见的http数据请求方式有get和post,web服务。

优点:1.基于应用级的接口使用方便
   2.要求的开发水平不高,容错性强
缺点:1.传输速度慢,数据包大
   2.如实现实时交互,服务器性能压力大
   3.数据传输安全性差

  1. TCP

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

优点:1.传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低
   2.传输数据时间短,性能高
   3.适合C/S之间信息实时交互
   4.可以加密,数据安全性高
缺点:1.需要对传输的数据进行解析,转化为应用级的数据
  2.对开发人员的开发水平要求高
   3.相对于Http协议传输,增加了开发量

  1. UDP

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

总结

HTTP:应用级接口使用起来比较方便

TCP:C/S架构数据交互,数据传输需要保证正确性可靠性,且对速度有一定的要求

UDP:广播式

坚持原创技术分享,您的支持将鼓励我继续创作!

------本文结束 感谢您的阅读------