Chapter 48. 前/后端协议

Table of Contents

  • 48.1. 概要
    • 48.1.1. 消息概述
    • 48.1.2. 扩展查询概述
    • 48.1.3. 格式和格式代码
  • 48.2. 消息流
    • 48.2.1. 启动
    • 48.2.2. 简单查询
    • 48.2.3. 扩展查询
    • 48.2.4. 函数调用
    • 48.2.5. COPY操作
    • 48.2.6. 异步操作
    • 48.2.7. 取消正在处理的请求
    • 48.2.8. 终止
    • 48.2.9. SSL会话加密
  • 48.3. 流复制协议
  • 48.4. 消息数据类型
  • 48.5. 消息格式
  • 48.6. 错误和通知消息字段
  • 48.7. 自协议 2.0 以来的变化的概述

PostgreSQL使用一种基于消息的协议用于前端和后端(服务器和客户机)之间通讯。 该协议是在 TCP/IP 和 Unix 域套接字上实现的。 端口号 5432 已经在 IANA 注册为使用这种协议的常用端口,但实际上任何非特权端口号都可以使用。

这份文档描述了版本 3.0 的协议,在 PostgreSQL 7.4 和以后的版本中实现。 对于以前的协议的描述,请参考以前版本的 PostgreSQL 文档。 一个服务器可以支持多种协议版本。初始化的启动消息告诉服务器客户端可以接受的协议版本,然后服务器则遵守该版本的协议(如果它能做到的话)。

为了可以有效地为多个客户端提供服务,服务器为每个客户端派生一个新的"后端"进程。 在目前的实现里,在检测到到来的连接请求后,马上创建一个新的子进程。 不过,这些是对协议透明的。对于协议而言,术语"后端"和"服务器"是可以互换的;类似的还有"前端"和"客户端"也是可以互换的。