在正常操作中,前端发送查询和其它命令到后端,然后后端返回查询结果和其它响应。在少数几种情况(比如NOTIFY)中,后端会发送未被请求的消息,但这个会话中的绝大多部分都是由前端请求驱动的。
会话的终止通常是由前端来选择的,但是也可以在某些情况下由后端强制执行。不管在那种情况下,如果后端关闭连接,那么它将在退出之前回滚所有打开的(未完成的)事务。
在正常操作中,SQL命令可以通过两个子协议中的任何一个执行。 在“简单查询”协议中,前端只是发送一个文本查询串, 然后后端马上分析并执行它。在“扩展查询”协议中, 查询的处理被分割为多个步骤:分析、参数值绑定和执行。这样就可以提供灵活性和性能的改进,但代价是额外的复杂性。
正常操作还有用于类似COPY这样的额外的子协议。