目次
PostgreSQLはフロントエンドとバックエンド(クライアントとサーバ)の通信にメッセージベースのプロトコルを使用します。 このプロトコルはTCP/IPに加え、Unixドメインソケットをサポートします。 ポート番号5432は、このプロトコルをサポートするサーバ用のTCPポートとしてIANAに登録されています。 しかし、実際には任意の非特権ポート番号を使用することができます。
この文書は、PostgreSQLバージョン18で導入されたプロトコルのバージョン3.2を記述しています。 サーバおよびlibpqクライアントライブラリは、PostgreSQL7.4以降で実装されたプロトコルバージョン3.0と下位互換性があります。
複数のクライアントにサービスを効率的に提供するために、サーバは各クライアント毎に新規の「バックエンド」プロセスを起動します。 現在の実装では、サーバに接続が届いたことを検知すると即座に新しい子プロセスが生成されます。 しかし、これはプロトコルに対して透過的です。 プロトコルという意味では、「バックエンド」と「サーバ」という用語は相互交換可能です。 同様に「フロントエンド」と「クライアント」も相互交換可能です。