支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

第 53 章. 前端/後端協定

PostgreSQL 使用基於訊息的協定進行前端與後端(用戶端與伺服器)之間的通訊。此協定支援透過TCP/IP以及 Unix 網域 socket。連接埠號碼 5432 已向 IANA 註冊為支援此協定的伺服器的慣用 TCP 連接埠號碼,但實際上可以使用任何非特權連接埠號碼。

本文描述了協定的 3.0 版,該版本在 PostgreSQL 7.4 及更高版本中實現。 有關早期協定版本的描述,請參閱先前版本的 PostgreSQL 文件。 單個伺服器可以支援多個協定版本。 初始啟動請求訊息會告知伺服器客戶端嘗試使用的協定版本。 如果客戶端請求的主版本不受伺服器支援,則連線將被拒絕(例如,如果客戶端請求協定版本 4.0,截至撰寫本文時該版本不存在,則會發生這種情況)。 如果客戶端請求的次要版本不受伺服器支援(例如,客戶端請求版本 3.1,但伺服器僅支援 3.0),則伺服器可以拒絕連線,也可以回應包含其支援的最高次要協定版本的 NegotiateProtocolVersion 訊息。 然後,客戶端可以選擇使用指定的協定版本繼續連線,或中止連線。

為了有效地為多個客戶端提供服務,伺服器會為每個客戶端啟動一個新的後端進程。 在目前的實作中,在偵測到傳入連線後,會立即建立一個新的子進程。 但這對於協定來說是透明的。 就協定而言,術語後端伺服器可以互換;同樣,前端客戶端也可以互換。

提交更正

如果您在文件中發現任何不正確、與您特定功能的使用體驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。