Как и все системы CGI, состоит из сценариев, располагающихся и выполняющихся на сервере и генерирующих разметку HTML для организации взаимодействий с пользователем через веб-броузер на компьютере клиента. Выполнение происходит только в контексте вебброузера, а запросы пользователя обрабатываются путем выполнения удаленных сценариев CGI на сервере. Без явного использования механизмов сохранения информации, таких как базы данных, сценарии CGI не имеют возможность хранить информацию о состоянии подобно PyMailGUI — каждый обработчик запроса будет выполняться автономно и только с той информацией о состоянии, которая явно передается от предыдущих сценариев в виде скрытых полей форм или параметров запросов в адресах URL. Вследствие этого в настоящей реализации программа PyMailCGI должна заново загружать все заголовки сообщений всякий раз, когда ей требуется отобразить список выбора, повторно загружая при этом сообщения, которые уже были загружены ранее в этом же сеансе, и в целом она не способна проверить синхронизацию с почтовым ящиком. Эту проблему можно решить путем реализации более сложных схем сохранения информации с применением cookies или баз данных, но ни одно из этих решений не отличается простотой, сравнимой с использованием обычной памяти процесса, как в PyMailGUI.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011