Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

第 53 章. 前端/后端协议

目录

53.1. 概述
53.1.1. 消息概述
53.1.2. 扩展查询概述
53.1.3. 格式和格式代码
53.2. 消息流
53.2.1. 启动
53.2.2. 简单查询
53.2.3. 扩展查询
53.2.4. 流水线
53.2.5. 函数调用
53.2.6. COPY 操作
53.2.7. 异步操作
53.2.8. 取消正在进行中的请求
53.2.9. 终止
53.2.10. SSL会话加密
53.2.11. GSSAPI会话加密
53.3. SASL 身份验证
53.3.1. SCRAM-SHA-256 身份验证
53.4. 流复制协议
53.5. 逻辑流复制协议
53.5.1. 逻辑流复制参数
53.5.2. 逻辑复制协议消息
53.5.3. 逻辑复制协议消息流
53.6. 消息数据类型
53.7. 消息格式
53.8. 错误和注意消息字段
53.9. 逻辑复制消息格式
53.10. 自协议 2.0 以来更改的摘要

PostgreSQL 使用基于消息的协议在前端和后端(客户端和服务器)之间进行通信。该协议通过以下方式获得支持:TCP/IP并且还通过 Unix 域套接字。将端口号 5432 向 IANA 注册为支持此协议的服务器的常用 TCP 端口号,但实际上可以使用任何非特权端口号。

本文档描述了协议版本 3.0,该版本在 PostgreSQL 7.4 及更高版本中已实现。有关较早协议版本的说明,请参阅 PostgreSQL 文档的先前版本。单个服务器可以支持多个协议版本。初始启动请求消息告诉服务器客户端尝试使用的协议版本。如果服务器不支持客户端请求的主版本,则连接将遭到拒绝(例如,如果客户端请求协议版本 4.0,则会出现这种情况,而此时并不存在该版本)。如果服务器不支持客户端请求的次要版本(例如,客户端请求版本 3.1,但服务器只支持版本 3.0),则服务器可能会拒绝连接,或者可能会以包含支持的最高次要协议版本为内容的 NegotiateProtocolVersion 消息进行响应。然后,客户端可以选择继续使用指定的协议版本执行连接,或中止连接。

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