什么是TCP, UDP, HTTP, HTTPS协议?
TCP
传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。
TCP主要特点:
1. 面向连接: (1)应用程序在使用TCP协议之前,必须先建立TCP连接。 (2)在传输数据完毕后,必须释放已经建立的TCP连接。
2. 每一条TCP连接只能是点对点的(一对一)
3. 提供可靠交付的服务: (1)通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达;
4. 提供全双工通信: (1)TCP允许通信双方的应用进程在任何时候都能发送数据。 (2)TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。 (3)在发送时,应用程序把数据传输给TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。 (4)在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
5. 面向字节流: (1)TCP中的流指的是流入到进程或从进程留出的字节序列。
UDP
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议。UDP为应用程序提供了一种无需建立连接就可以发送封装的IP 数据报的方法。RFC768描述了UDP
UDP主要特点:
1. 无连接: (1) UDP是无连接的,即通信时不需要创建连接(发送数据结束时也没有连接可以释放)所以减小了开销和发送数据前的时延。
2. 尽最大努力交付: (1) 不保证可靠交付,因此主机不需要维护复杂的连接状态。
3. 面向报文: (1) 只在应用层交下来的报文前增加了首部后就向下交付IP层。
4. 无拥塞控制: (1) UDP是无阻塞控制的,即使网络中存在阻塞,也不会影响发送端的发送频率。
5. 支持一对一、一对多、多对一和多对多的交互通信;
6. 首部开销小(只有四个字段:源端口、目的端口、长度、检验和): (1) 只有8个字节,它比TCP的20个字节的首部要短
HTTP
1. http是一个简单的请求-响应协议,它通常运行在TCP之上。 2. 它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 3. 请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。 4. 这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。
http主要特点:
1.支持客户/服务器模式。 2.简单快速: (1) 客户向服务器请求服务时,只需传送请求方法和路径。 (2) 请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。 (3) 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活: (1) HTTP允许传输任意类型的数据对象。 (2) 正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。 4.无连接: (1) 无连接的含义是限制每次连接只处理一个请求。 (2) 服务器处理完客户的请求,并收到客户的应答后,即断开连接。 (3) 采用这种方式可以节省传输时间。 5.无状态: (1) HTTP协议是无状态协议。 (2) 无状态是指协议对于事务处理没有记忆能力。 (3) 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。 (4) 一方面,在服务器不需要先前信息时它的应答就较快。
HTTPS
(简而言之,就是对http进行了加密)
1. HTTPS 是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。 2. HTTPS 在HTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 3. HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。 4. 这个系统提供了身份验证与加密通讯方法。 5. 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
HTTPS主要特点:
1. 基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护 2. 内容加密: (1) 采用混合加密技术,中间者无法直接查看明文内容 3. 验证身份: (1) 通过证书认证客户端访问的是自己的服务器 4. 保护数据完整性: (1) 防止传输的内容被中间人冒充或者篡改