# 第 53 章前端/后端协议
目录
PostgreSQL使用基于消息的协议在前端和后端(客户端和服务器)之间进行通信。TCP/IP和Unix域套接字支持该协议。端口号5432已在IANA注册为支持此协议的服务器的常规TCP端口号,但实际上可以使用任何非特权端口号。
本文档描述了协议的3.0版本,在PostgreSQL 7.4及更高版本中实现。有关早期协议版本的描述,请参阅PostgreSQL文档的早期版本。一台服务器可以支持多个协议版本。初始启动请求消息告诉服务器客户端正在尝试使用哪个协议版本。如果服务器不支持客户机请求的主版本,则连接将被拒绝(例如,如果客户机请求的协议版本为4.0,则会发生这种情况,截至本文撰写之时,该版本还不存在)。如果服务器不支持客户端请求的次要版本(例如,客户端请求3.1版,但服务器仅支持3.0版),服务器可能会拒绝连接,或者会使用包含其支持的最高次要协议版本的NegotiateProtocolVersion消息进行响应。然后,客户端可以选择使用指定的协议版本继续连接,也可以选择中止连接。
为了高效地为多个客户端提供服务,服务器为每个客户端启动一个新的“后端”进程。在当前的实现中,在检测到传入连接后立即创建一个新的子进程。然而,这对协议来说是透明的。就协议而言,术语“后端”和“服务器”可以互换;同样,“前端”和“客户端”也可以互换。