2024 年 9 月 26 日: PostgreSQL 17 发布!
支持版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

第 53 章。前端/后端协议

PostgreSQL 使用基于消息的协议进行前端和后端(客户端和服务器)之间的通信。该协议支持通过TCP/IP以及 Unix 域套接字。端口号 5432 已在 IANA 注册为支持此协议的服务器的常用 TCP 端口号,但在实践中,可以使用任何非特权端口号。

本文档描述了在 PostgreSQL 7.4 及更高版本中实现的协议版本 3.0。有关早期协议版本的描述,请参阅先前版本的 PostgreSQL 文档。单个服务器可以支持多个协议版本。初始启动请求消息告诉服务器客户端尝试使用的协议版本。如果客户端请求的主要版本不受服务器支持,则连接将被拒绝(例如,如果客户端请求协议版本 4.0,在撰写本文时,此版本尚不存在,则会发生这种情况)。如果客户端请求的次要版本不受服务器支持(例如,客户端请求版本 3.1,但服务器仅支持 3.0),则服务器可能会拒绝连接,也可能会使用包含其支持的最高次要协议版本的 NegotiateProtocolVersion 消息进行响应。然后,客户端可以选择继续使用指定的协议版本进行连接或中止连接。

为了有效地为多个客户端提供服务,服务器为每个客户端启动一个新的 后端 进程。在当前实现中,在检测到传入连接后立即创建一个新的子进程。然而,这对于协议来说是透明的。就协议而言,术语 后端服务器 可以互换使用;同样,前端客户端 可以互换使用。

提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。