Postgres메시지 기반을 사용합니다 프론트 엔드와 백엔드 간의 커뮤니케이션 프로토콜. 그만큼 프로토콜이 구현 됨TCP/IP그리고 유닉스 소켓에도Postgresv6.3 버전 번호를 프로토콜에 도입했습니다. 이것은 완료되었습니다 이전 버전에서 여전히 연결을 허용하는 방법 Frontends이지만이 문서는 그 이전 버전.
이 문서는 구현 된 프로토콜의 버전 2.0을 설명합니다 안에Postgresv6.4 이상.
이 프로토콜을 기반으로 구축 된 더 높은 레벨 기능 (예 : 방법libpq특정 환경을 통과합니다 연결이 설정된 후 변수)가 포함됩니다 다른 곳.
세 가지 주요 구성 요소는 프론트 와이즈 토토입니다 ( 클라이언트) 및 우체국 장 및 백와이즈 토토 (서버에서 실행). 그만큼 우체국 장과 백와이즈 토토는 다른 역할을하지만 구현 될 수 있습니다. 동일한 실행 파일에 의해.
프론트 엔드는 스타트 업 패킷을 우체국 장에 보냅니다. 이것 사용자의 이름과 사용자가 원하는 데이터베이스를 포함합니다. 연결하십시오. 그런 다음 우체국 장은 이것과 정보를 사용합니다 PG_HBA.conf (5) 파일을 통해 추가 인증을 결정합니다 정보는 프론트 엔드가 (있는 경우) 보내야하고 응답합니다. 그에 따라 프론트 엔드에.
프론트 엔드는 필요한 인증 정보를 보냅니다. 우체국 장이 이것을 확인하면 프론트 엔드에 응답합니다. 그것은 인증되고 백엔드와의 연결을 넘어냅니다. 그만큼 그런 다음 백엔드는 성공적인 시작을 나타내는 메시지를 보냅니다 (정상 CASE) 또는 실패 (예 : 잘못된 데이터베이스 이름).
후속 통신은 쿼리 및 결과 패킷을 교환합니다 프론트 엔드와 백엔드 사이. 우체국 장은 아니요 일반 쿼리/결과 통신의 추가 부분. (그러나, 프론트 엔드가 쿼리를 취소하려고 할 때 우체국 장이 참여합니다. 현재 백엔드에 의해 실행 중입니다. 그것에 대한 자세한 내용 아래에 나타납니다.)
프론트 와이즈 토토가 연결을 끊으려면 적절한 것을 보냅니다. 패킷과 응답을 기다리지 않고 연결을 닫습니다. 백와이즈 토토.
패킷은 데이터 스트림으로 전송됩니다. 첫 번째 바이트가 결정됩니다 나머지 패킷에서 예상되는 것. 예외는입니다 프론트 와이즈 토토에서 우체국 장으로 보내진 패킷은 패킷 길이는 패킷 자체입니다. 차이점은 역사적인.