PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

Chapter 54. 前端/后端通信协议

Table of Contents

54.1. 概述
54.1.1. 消息传递机制概述
54.1.2. 扩展查询协议概述
54.1.3. 格式与格式代码
54.1.4. 协议版本
54.2. 消息流
54.2.1. 启动连接流程
54.2.2. 简单查询流程
54.2.3. 扩展查询流程
54.2.4. 流水线处理
54.2.5. 函数调用
54.2.6. COPY 数据传输操作
54.2.7. 异步操作
54.2.8. 取消正在执行的请求
54.2.9. 连接终止
54.2.10. SSL 会话加密
54.2.11. GSSAPI 会话加密
54.3. SASL 身份认证
54.3.1. SCRAM-SHA-256 认证
54.3.2. OAUTHBEARER 认证
54.4. 流复制协议
54.5. 逻辑流复制协议
54.5.1. 逻辑流复制参数
54.5.2. 逻辑复制协议消息
54.5.3. 逻辑复制协议消息流
54.6. 消息基础数据类型
54.7. 具体报文消息格式
54.8. 错误与通知消息字段
54.9. 逻辑复制具体消息格式
54.10. 自协议 2.0 以来的变更摘要

PostgreSQL 使用一种基于消息的协议 用于前端与后端(客户端与服务器)之间的通信。 该协议通过 TCP/IP 以及 Unix 域套接字得到支持。 端口号 5432 已在 IANA 注册为支持该协议的服务器惯用的 TCP 端口号, 但实际上可以使用任何非特权的端口号。

本文档描述 PostgreSQL 18 中引入的 协议版本 3.2。服务器与 libpq 客户端库向后兼容协议版本 3.0, 该版本由 PostgreSQL 7.4 及之后的版本实现。

为了高效地服务多个客户端,服务器会为每个客户端 启动一个新的“后端”进程。 在当前的实现中,一旦检测到新的连接就会立即创建一个新的子进程。 不过,这对协议而言是透明的。就协议而言, “后端”和“服务器”这两个词可以互换; 同样,“前端”和“客户端”也可以互换。