Думаю многие знают, как работает CGI взаимодействие между клиентом и сервером: клиент получает от сервера и отдает серверу данные через стандартные stdin и stdout. Многие наверное даже сами писали CGI клиентов, ведь по сути — любой скрипт для веб-сервера это и есть CGI-клиент.
А многие ли задавались вопросом, как именно происходит эта «магия»? Каким образом стандартные функции для ввода/вывода вместо экрана взаимодействуют с сервером?
Результаты поиска ответа в сети меня не удовлетворили и я решил сам написать простейший CGI сервер, который сможет:
- Запускать дочерний процес — CGI скрипт
- Передавать скрипту переменные окружения и переменные командной строки
- Принимать от скрипта ответ
- Завершаться, когда завершится процесс клиента
Кроме этого, мне хотелось, чтобы клиент и сервер компилировались как в Windows, так и в Linux.
Читать полностью »