Article View: pl.comp.lang.perl
Article #352Re: CGI - opracowanie
From: Piotr Piatkowski
Date: Tue, 10 Jun 1997 12:43
Date: Tue, 10 Jun 1997 12:43
87 lines
4166 bytes
4166 bytes
In pl.comp.lang.perl Mariusz Jasinski <jasinski@ci-1.ci.pwr.wroc.pl> wrote: : W ramach zajec na uczelni splodzilem male opracowanie : o CGI. Chetnych zapraszam do skorzystania. : A doswiadczonych o ocene i porawienie bledow. : Adres opracowania o CGI: : http://www.ci.pwr.wroc.pl/~jasinski/cgi/ Aktualna wersja perla to 5.004 (ale to drobiazg - sam jeszcze mam 5.003 :-) ). Natomiast jeżeli chodzi o API dla serwerów, to mam już znacznie więcej uwag: > Wymagane jest umieszczanie funkcji w bibliotekach DLL, korzystanie > z wielowątkowości, synchronizacja procesów, bezpośrednie > programowanie protokołu TCP/IP, złożona obsługa błędów. Żadne z powyższych stwierdzeń nie jest prawdziwe. Właśnie niedawno napisałem moduł do Apache'a korzystając z jego API, i wszystkie wymienione powyżej problemy są rozwiązane przez twórców serwera - nie ma potrzeby robić tego samodzielnie (chociaż oczywiście można, jak ktoś chce to zrobić lepiej - powodzenia :-) ). Poza tym co prawda pojawiło się zdanie "serwer apache ma również własne API", ale moim zdaniem to trochę za mało - nie widziałem innych API i trudno mi porównywać, ale wydaje mi się że API z serwera Apache nie jest gorsze, a przypuszczam że lepsze, niż API w pozostałych serwerach (szczególnie jeżeli faktycznie tamte API mają takie ograniczenia o których pisze autor). Dalej: > #!/usr/bin/perl > print "HTTP/1.0 200 OK\n"; Tego akurat nie rozumiem... Bo to jest tak - z jednej strony specyfikacja CGI mówi że "The output of scripts begins with a small header. This header consists of text lines, in the same format as an HTTP header, terminated by a blank line (a line with only a linefeed or CR/LF)." - czyli można by przypuszczać że skrypt nie powinien generować status-line, z drugiej strony nieco dalej są przykłady, gdzie faktycznie taka linijka jest wypisywana. Więc ja już głupi jestem i nie wiem jak ma być :-) W każdym razie apache (przynajmniej w wersji 1.0.5) takiego CGI nie przyjmuje do wiadomości. ... > print "<meta http-equiv=\"content-type .... A to już moim zdaniem totalny bezsens. Kilka wierszy wyżej umieszczone jest: > print "Content-type: text/html\n\n"; a potem jest to powtórzone w samym html. Dlaczego nie umieścić informacji o charset'cie właśnie w nagłówku, tam gdzie od wieków jest jej miejsce? :-) > print "Content-type: text/html; charset=ISO-8859-2\n\n"; ... > PATH_INFO - Pełna ścieżka dostępu do programu CGI w systemie > plików serwera WWW ... Nie! PATH_INFO to zupełnie co innego - to jest to co użytkownik poda po nazwie skryptu jako dodatkową ścieżkę, np: http://www.agh.edu.pl/ogonki/test.cgi/pl-iso powoduje uruchomienie test.cgi z ustawieniem PATH_INFO na "/pl-iso" Podobnie - PATH_TRANSLATED to to samo PATH_INFO po przetworzeniu przez serwer. Teraz tak ogólnie... Może będę bezlitosny, ale odniosłem wrażenie że tekst był (dla mnie!) raczej mało zrozumiały, więc boję się że skoro ja miałem problemy z jego zrozumieniem, to człowiek który nie ma pojęcia o CGI niewiele z tego tekstu wyniesie korzyści... Na początku brakuje przykładów, a te które się potem pojawiają są zbyt złożone. Chyba znacznie lepsze byłoby proste przetłumaczenie tego co jest pod http://hoohoo.ncsa.uiuc.edu/cgi/ -- Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Technical Details
Message-ID:
<5nji5s$jfv$1@galaxy.uci.agh.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!cyfronet!agh.edu.pl!agh.edu.pl!not-for-mailReferences:
<3397FFD4.4DEF@ci-1.ci.pwr.wroc.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!cyfronet!agh.edu.pl!agh.edu.pl!not-for-mail From: kompas@galaxy.uci.agh.edu.pl (Piotr Piatkowski) Newsgroups: pl.comp.www,pl.comp.lang.perl Subject: Re: CGI - opracowanie Date: 10 Jun 1997 14:43:40 +0200 Organization: University of Mining & Metallurgy Lines: 87 Message-ID: <5nji5s$jfv$1@galaxy.uci.agh.edu.pl> References: <3397FFD4.4DEF@ci-1.ci.pwr.wroc.pl> NNTP-Posting-Host: galaxy.uci.agh.edu.pl Mime-Version: 1.0 X-Newsreader: TIN [UNIX 1.3 unoff BETA 970307; sun4m SunOS 5.5.1] Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit