Documentation PostgreSQL 16.14 » Internes » Protocole Frontend/Backend

Précédent Niveau supérieur Suivant
54.35. pg_views Sommaire 55.1. Aperçu

Chapitre 55. Protocole Frontend/Backend

Table des matières

55.1. Aperçu
55.1.1. Aperçu des messages
55.1.2. Aperçu des requêtes étendues
55.1.3. Formats et codes de format
55.2. Flot de messages
55.2.1. Démarrage (Start-up)
55.2.2. Requête simple
55.2.3. Requête étendue
55.2.4. Pipelines
55.2.5. Appel de fonction (Function Call)
55.2.6. Opérations COPY
55.2.7. Opérations asynchrones
55.2.8. Annuler des requêtes en cours
55.2.9. Arrêt
55.2.10. Chiffrement SSL de la session
55.2.11. Chiffrement GSSAPI des sessions
55.3. Authentification SASL
55.3.1. Authentification SCRAM-SHA-256
55.4. Protocole de réplication en flux
55.5. Logical Streaming Replication Protocol
55.5.1. Paramètres de la réplication logique en flux
55.5.2. Messages du protocole de réplication logique
55.5.3. Flot des messages du protocole de réplication logique
55.6. Types de données des messages
55.7. Formats de message
55.8. Champs des messages d'erreur et de notification
55.9. Formats des messages de la réplication logique
55.10. Résumé des changements depuis le protocole 2.0

PostgreSQL utilise un protocole de messages pour la communication entre le frontend et le backend (clients et serveurs). Le protocole est supporté sur TCP/IP et aussi sur les sockets de domaine Unix. Le numéro de port 5432 a été enregistré auprès de l'IANA comme numéro de port TCP attribué pour les serveurs utilisant ce protocole, mais, en pratique, tout numéro de port non privilégié peut être utilisé.

Ce document décrit la version 3.0 de ce protocole, implémenté dans PostgreSQL 7.4 et ses versions ultérieures. Pour la description des versions précédentes du protocole, voir les versions précédentes de la documentation PostgreSQL. Un serveur peut accepter plusieurs versions du protocole. Le message startup-request initial indique au serveur la version du protocole que le client essaie d'utiliser. Si la version majeure demandée par le client n'est pas comprise par le serveur, la connexion sera rejetée (par exemple, cela surviendrait si le client demandait la version 4.0 du protocole, qui n'existe pas au moment de l'écriture de ce chapitre). Si la version mineure demandée par le client n'est pas acceptée par le serveur (par exemple si le client réclame la version 3.1 mais que le serveur n'accepte que la version 3.0), le serveur peut soit rejeter la connexion soit répondre avec un message NegotiateProtocolVersion contenant la version mineure la plus haute qu'il accepte pour ce protocole. Le client peut ensuite choisir soit de tenter une nouvelle connexion avec la version indiquée du protocole soit annuler la connexion.

Pour servir plusieurs clients avec efficacité, le serveur lance un nouveau processus « backend » pour chaque backend. Dans l'implémentation actuelle, un nouveau processus fils est créé immédiatement après la détection d'une connexion entrante. Cependant, ceci est transparent pour le protocole. Pour le protocole, les termes « backend » et « server » sont interchangeables ; de la même façon, les termes « frontend » et « client » sont interchangeables.

AltStyle によって変換されたページ (->オリジナル) /