Глава 54. Клиент-серверный протокол
Содержание
- 54.1. Обзор
- 54.2. Поток сообщений
- 54.3. Аутентификация SASL
- 54.4. Протокол потоковой репликации
- 54.5. Протокол логической потоковой репликации
- 54.6. Типы данных в сообщениях
- 54.7. Форматы сообщений
- 54.8. Поля сообщений с ошибками и замечаниями
- 54.9. Форматы сообщений логической репликации
- 54.10. Сводка изменений по сравнению с протоколом версии 2.0
- 54.7. Форматы сообщений
Клиенты и серверы PostgreSQL взаимодействуют друг с другом, используя специальный протокол, основанный на сообщениях. Этот протокол поддерживается для соединений по TCP/IP и через Unix-сокеты. Для серверов, поддерживающих этот протокол, в IANA зарезервирован номер TCP-порта 5432, но на практике можно задействовать любой порт, не требующий особых привилегий.
В этой документации описана версия 3.2 этого протокола, которая введена в PostgreSQL версии 18. Сервер и клиентская библиотека libpq обратно совместимы с версией 3.0 этого протокола, реализованной в PostgreSQL версии 7.4 и выше.
Чтобы эффективно обслуживать множество клиентов, сервер запускает отдельный «обслуживающий» процесс для каждого клиента. В текущей реализации новый дочерний процесс запускается немедленно после обнаружения входящего подключения. Однако это происходит прозрачно для протокола. С точки зрения протокола, термины «обслуживающий процесс», «процесс заднего плана» и «сервер» взаимозаменяемы, как и «приложение переднего плана» и «клиент».