Documentation PostgreSQL 10.23 » Internes » Protocole client/serveur
Précédent Niveau supérieur Suivant
51.93. pg_views Sommaire 52.1. Aperçu

Chapitre 52. Protocole client/serveur

Table des matières

52.1. Aperçu
52.1.1. Aperçu des messages
52.1.2. Aperçu du protocole Extended Query
52.1.3. Formats et codes de format
52.2. Flux de messages
52.2.1. Lancement
52.2.2. Protocole Simple Query
52.2.3. Protocole Extended Query
52.2.4. Pipelines
52.2.5. Appel de fonction
52.2.6. Opérations copy
52.2.7. Opérations asynchrones
52.2.8. Annulation de requêtes en cours
52.2.9. Fin
52.2.10. Chiffrement SSL de session
52.3. Protocole de réplication logique en flux
52.3.1. Paramètres de la réplication logique en flux
52.3.2. Messages du protocole de réplication logique
52.3.3. Flot des messages du protocole de réplication logique
52.4. Types de données des message
52.5. Authentification SASL
52.5.1. Authentification SCRAM-SHA-256
52.6. Protocole de réplication en continu
52.7. Formats de message
52.8. Champs des messages d'erreur et d'avertissement
52.9. Formats des messages de la réplication logique
52.10. Résumé des modifications depuis le protocole 2.0

PostgreSQL utilise un protocole de messages pour la communication entre les clients et les serveurs (« frontend » et « backend »). Le protocole est supporté par tcp/ip et par les sockets de domaine Unix. Le numéro de port 5432 a été enregistré par l'IANA comme numéro de port TCP personnalisé pour les serveurs supportant 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, telle qu'implantée dans PostgreSQL depuis la version 7.4. Pour obtenir la description des versions précédentes du protocole, il faudra se reporter aux versions antérieures de la documentation de PostgreSQL. Un même serveur peut prendre en charge plusieurs versions du protocole. Lors de l'établissement de la communication, le client indique au serveur la version du protocole qu'il souhaite utiliser. Si la version majeure demandée par le client n'est pas supportée par le serveur, la connexion sera rejetée (par exemple, ceci arriverait si le client réclamait la version de protocole 4.0, qui n'existe pas au moment où ceci est écrit). Si la version mineure demandée par le client n'est pas supportée par le serveur (par exemple si le client réclame la version 3.1 mais que le serveur ne supporte que la version 3.0), le serveur peut soit rejeter la connexion soit répondre avec un message NegotiateProtocolVersion contenant le numéro de version mineur le plus haut qu'il supporte pour cette version du protocole. Le client peut ensuite choisir soit de continuer avec la connexion en utilisant la version spécifiée par le serveur soit d'annuler la connexion.

Pour répondre efficacement à de multiples clients, le serveur lance un nouveau serveur (« backend ») pour chaque client. dans l'implémentation actuelle, un nouveau processus fils est créé immédiatement après la détection d'une connexion entrante. Et cela de façon transparente pour le protocole. Pour le protocole, les termes « backend » et « serveur » sont interchangeables ; comme « frontend », « interface » et « client ».

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