Obsługa CGI
Wykorzystanie zewnętrznego oprogramowania do generowania zasobów dla klientów jest już właściwie standardem w serwerach HTTP. Warto więc taki mechanizm zaimplementować. Aktualnie jest klika możliwości realizacji takiego zadania:
-
CGI/1.1
-
FastCGI
-
Moduł serwera (np. moduł PHP dla Apache)
-
Serwery HTTP dla określonej technologii (np. Java Servlet)
Najprostszym, choć może nie najlepszym rozwiązaniem, jakie można zaimplementować w serwerze HTTP jest CGI (Common Gateway Interface ). Standard CGI został opisany w dokumencie RFC-3875. Zasada działania jest bardzo prosta – przed uruchomieniem programu, który powinien wygenerować dla nas odpowiedź należy utworzyć pewne zmienne środowiskowe zawierające informacje o serwerze oraz otrzymanym od klienta zapytaniu. Kolejnym krokiem jest uruchomienie nowego procesu – programu, który ma wygenerować zasób. Na jego standardowe wejście wysyłane jest ciało zapytania klienta. Osobna aplikacja generuje odpowiedź dla klienta wraz z nagłówkami HTTP i zwraca ją do standardowego wyjścia, skąd serwer HTTP pobiera informacje. Specyfikacja CGI/1.1 pozwala na modyfikację wygenerowanej treści, więc warto sprawdzić, czy dodano wszystkie potrzebne nagłówki do wygenerowanej odpowiedzi (np. „Content-Type”, „Content-Length”, „Date” itp.). Następnie wygenerowana treść może zostać zwrócona w odpowiedzi do klienta [25].
Serwer HTTP 