UDP 与 TCP 的区别
UDP 是简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。 UDP 的主要作用是将网络数据流量压缩成数据报的形式,每一个数据报用 8 个字节描述报头信息,剩余字节包含具体的传输数据。
UDP 与 TCP 的区别:
1、 UDP 速度比 TCP 块
由于 UDP 不需要先与对方建立连接,也不需要传输确认,因此 其数据传输速度比 TCP 快的多。 对于强调传输性能而不是传输完整性的应用(如网络音频播放、视频点播、网络会议等),使用 UDP 比较合适,因为它的传输速度快,能使通过网络播放的音质好、视频画面清晰。 2、 UDP 有消息边界 使用 UDP 不需要考虑消息边界问题,因此使用上比 TCP 简单。
3、 UDP 可以一对多传输
利用 UDP 可以使用广播或组播的方式同时向自网上的所有客户发送信息。这一点也比 TCP 方便。
4、 UDP 可靠性不如 TCP
UDP 和 TCP 的主要区别是两者在如何实现信息的可靠传递方面不同。TCP 包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其他信息,否则将一直等待直到收到确认信息为止。与 TCP 不同,UDP 并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把 UDP 称为不可靠的传输协议。
5、 UDP 不能保证有序传输
UDP 不能确保数据的发送和接收顺序。对于突发性的数据报,有可能会乱序。事实上,
UDP 的这种乱序性基本上很少出现,通常只会在网络非常拥挤的情况下才可能发生。
利用 UDP 进行广播和组播
广播,就是指同时向子网中的多台计算机发送消息,并且所有子网中的计算机都可以接收到发送方发来的消息。每个广播消息包含一个特殊的 IP 地址,这个特殊地址的特点是子网内主机标识部分的二进制表示均为 1. 广播分为 2 种类型:本地广播和全球广播 本地广播是指向子网中的所有计算机发送广播消息,其他网络不会受到本地广播的影响。 主机标识部分二进制表示全部为 1 的地址称为本地广播地址。 组播也叫多路广播。所谓组播是将消息从一台计算机发送到本网或全网内选择的计算机子集上,即发送到那些加入指定组播组的计算机上,组播是开放的,每台计算机都可以通过程序随时加入到组播中,也可以随时离开。
HTTP 的特点
1.HTTP 以 TCP 方式工作
HTTP 客户端首先与服务器建立 TCP 连接,然后客户端通过套接字发送 HTTP 请求,并通过套接字接收 HTTP 响应。由于 HTTP 采用 TCP 传输数据,因此不会丢失数据,也不会出现乱序的情况。 在 HTTP/1.0 中,客户端和服务器建立 TCP 连接后,发送一个请求至服务器,服务器发送一个应答至客户端,然后立即断开 TCP 连接。主要过程如下:
(1) 客户端与服务器建立 TCP 连接。
(2) 客户端向服务器提出请求。
(3) 如果服务器接受请求,则会送响应码和所需的信息。
(4) 客户端与服务器断开 TCP 连接。
HTTP/1.1 支持持久连接,即客户端和服务器建立连接后,可以发送请求和接收应答,然后迅速地发送另一个请求和接收另一个应答。同时,持久连接也使得在得到上一个请求的应答之前能够发送多个请求,这是 HTTP/1.1 与 HTTP/.0 明显不同的地方。
2.HTTP 是无状态的
“无状态“的含义是,客户端发送一次请求后,服务器并没有存储关于该客户端的任何状态信息。即使客户端再次请求同一个对象,服务器仍会重新发送这个对象,而不管原来是否已经向该客户端发送过这个对象。
4、 HTTP 使用元信息作为标头
HTTP 通过添加标头(Header)的方式向服务器提供本次 HTTP 请求的相关信息,即在主要数据前添加一部分信息,称为元信息(Metainformation)。
HTTP 的请求方法
请求方法名 说明
GET 请求获取特定的资源,例如,请求一个 Web 页面
POST 请求向指定资源提交数据进行处理(例如,提交表单或者上传文件),请求的数据被包含在请求体中
PUT 向指定资源位置上传其最新内容,例如,请求存储一个 Web 页面 HEAD 向服务器请求获取与 GET 请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获得包含在响应消息头中的元信息
DELETE 请求删除指定的资源
OPTIONS 返回服务器针对特定资源所支持的 HTTP 请求方法
TRACE 回显服务器收到的请求
CONNECT 预留给能够将连接改为管道方式的代理服务器
在这些方法中,最常见的是 GET 方法和 POST 方法,也叫 GET 请求和 POST 请求。 如果服务器不支持客户端发送的请求方法,则服务器将返回错误并立即关闭连接。 有两点需要注意,一是请求的方法称为区分大小写,而是 HTTP 服务器至少应该实现 GET 和 HEAD 方法,其他方法都是可选的。