PostgreSQLはフロントエンドとバックエンド(クライアントとサーバ)の通信にメッセージベースのプロトコルを使用します。 このプロトコルはTCP/IPに加え、Unixドメインソケットをサポートします。 ポート番号5432は、このプロトコルをサポートするサーバ用のTCPポートとしてIANAに登録されています。 しかし、実際には任意の非特権ポート番号を使用することができます。
この文書はPostgreSQL 7.4以降で実装されたプロトコル3.0バージョンについて記載します。 以前のプロトコルバージョンについての説明は、PostgreSQLの以前のリリースの文書を参照してください。 初めの開始要求メッセージは、サーバに対し、クライアントが使用する予定のプロトコルバージョンを通知します。 その後、サーバは可能であればそのプロトコルに従います。
複数のクライアントにサービスを効率的に提供するために、サーバは各クライアント毎に新規の"バックエンド"プロセスを起動します。 現在の実装では、サーバに接続が届いたことを検知すると即座に新しい子プロセスが生成されます。 しかし、これはプロトコルに対して透過的です。 プロトコルという意味では、"バックエンド"と"サーバ"という用語は相互交換可能です。 同様に"フロントエンド"と"クライアント"も相互交換可能です。