HTTP プロトコルを実装する必要があるアプリケーションを作成しているとします。プロトコルは非常に複雑で、トランザクションのどの段階にあるかによって、複数のコマンドが許可される場合があります。
例として、SMTP を見てください。「rcpt」と「mail」を受信する前に「data」コマンドが送信された場合、SMTP サーバーはエラーをスローする必要があります。
私の質問は: コードでこのようなプロトコルを処理する最良の方法は何ですか? これに関連する設計パターンはありますか?
編集: この質問は、プロトコルの実装の背後にある理論に関連しています。実際には、ライブラリを使用することが最善の方法であることは承知しています。