Глава 53. Клиент-серверный протокол

Содержание

53.1. Обзор
53.1.1. Обзор обмена сообщениями
53.1.2. Обзор расширенных запросов
53.1.3. Форматы и коды форматов
53.2. Поток сообщений
53.2.1. Запуск
53.2.2. Простой запрос
53.2.3. Расширенный запрос
53.2.4. Вызов функций
53.2.5. Операции COPY
53.2.6. Асинхронные операции
53.2.7. Отмена выполняющихся запросов
53.2.8. Завершение
53.2.9. Защита сеанса с SSL
53.3. Протокол потоковой репликации
53.4. Типы данных в сообщениях
53.5. Форматы сообщений
53.6. Поля сообщений с ошибками и замечаниями
53.7. Сводка изменений по сравнению с протоколом версии 2.0

Клиенты и серверы Postgres Pro Enterprise взаимодействуют друг с другом, используя специальный протокол, основанный на сообщениях. Этот протокол поддерживается для соединений по TCP/IP и через доменные сокеты Unix. Для серверов, поддерживающих этот протокол, в IANA зарезервирован номер TCP-порта 5432, но на практике можно задействовать любой порт, не требующий особых привилегий.

В этой документации описана версия 3.0 этого протокола, реализованная в PostgreSQL версии 7.4 и новее. За описанием предыдущих версий протокола обратитесь к документации более ранних выпусков PostgreSQL. Один сервер способен поддерживать несколько версий протокола. Из стартового сообщения при установлении соединения сервер узнаёт, какую версию протокола пытается использовать клиент, и если сервер поддерживает запрошенную версию, он продолжает обмен по этому протоколу.

Чтобы эффективно обслуживать множество клиентов, сервер запускает отдельный «обслуживающий» процесс для каждого клиента. В текущей реализации новый дочерний процесс запускается немедленно после обнаружения входящего подключения. Однако это происходит прозрачно для протокола. С точки зрения протокола, термины «обслуживающий процесс», «процесс заднего плана» и «сервер» взаимозаменяемы, как и «приложение переднего плана» и «клиент».