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