Nie musisz być czarodziejem, aby zrozumieć, w jaki sposób generowano treści w czasie rzeczywistym. Zanim zapanowały nowoczesne frameworki i jednostronicowe aplikacje bogate w JavaScript, podstawą dynamicznej zawartości sieciowej był CGI (Common Gateway Interface). Brzmi sucho. Ale to działa po prostu.
W swej istocie skrypt CGI jest po prostu programem. Zwykle napisany w języku C lub PERL, jest umieszczany w specjalnym folderze na serwerze, zwykle nazywanym cgi-bin. Gdy przeglądarka uzyskuje dostęp do adresu URL tego skryptu, serwer nie wysyła tylko pliku statycznego. Uruchamia program. Wszystko, co ten program wysyła na standardowe wyjście (STDOUT), jest wysyłane bezpośrednio do Twojej przeglądarki.
Jest jedna zasada, której nie można złamać. Pierwszą rzeczą, którą skrypt powinien wysłać, jest nagłówek: Typ zawartości: tekst/html\n\n. Na końcu dwa znaki nowej linii. Sygnalizują przeglądarce: „To, co następuje, to HTML”. Po tym? Wszystko. Programiści zazwyczaj wysyłają prawidłowe tagi HTML, aby zapewnić prawidłowe wyświetlanie strony.
Przetwarzanie danych formularza
Skąd skrypt wie, jakie dane przetwarzać? Pochodzą z formularza HTML. Określasz atrybut ACTION w kodzie formularza, który wskazuje adres URL skryptu CGI. Kiedy użytkownik wysyła formularz, dane są przekazywane do skryptu.
Skrypt powinien wtedy wykonać główną pracę. Analizuje przychodzące ciągi znaków. Dekoduje zmodyfikowane znaki (na przykład konwertując „%20” z powrotem na spację). Prosty program w C może obsłużyć tę analizę, chociaż wymaga ręcznego zarządzania pamięcią i manipulacji ciągami.
Jeśli używasz Perla, wszystko jest prostsze. Biblioteka PERL CGI odciąga od Ciebie złożoną logikę analizowania. Wywołujesz funkcję i dane są gotowe. Jest czyściej. Szybciej jest pisać.
Dokąd zmierzają wyniki?
W przykładzie tutoriala możesz po prostu wyświetlić wyniki na ekranie. W prawdziwym świecie będziesz chciał zapisać te dane. Pliki tekstowe? Bazy danych? Obie opcje są odpowiednie. Możesz dodać odpowiedzi na ankietę do pliku dziennika z C lub PERL przy minimalnym kodowaniu. To właśnie ta integralność danych sprawia, że CGI jest użyteczne poza prostą demonstracją „Hello World”.
Dziedzictwo CGI
W tym kontekście omówiliśmy podstawy języków C i PERL. Jeśli chcesz zgłębić mechanikę, możesz przestudiować, jak działają programy w C lub PERL od środka. Możesz też sprawdzić, jak serwery internetowe zarządzają tymi żądaniami.
Dla tych, którzy chcą uniknąć szablonowego kodu, dostępne są zasoby takie jak cgi-lib.pl. Jest to biblioteka, która znacznie upraszcza przetwarzanie CGI w PERL. Dostępny jest także indeks zasobów CGI zawierający dokumentację i szybkie wprowadzenie do formularzy HTML.
To stara technologia. Ustaliło jednak wzór sposobu, w jaki serwery komunikują się z programami zewnętrznymi. Zrozumienie tego pomoże Ci zrozumieć nowoczesny stos technologii, nawet jeśli obecnie używasz języka Python lub Node.js. Podstawowe pytanie pozostaje takie samo: jak wykorzystać wkład użytkownika i przekształcić go w dynamiczną reakcję?
Odpowiedź zaczęła się od skryptu w folderze cgi-bin.


















