Odwołanie do zmiennych środowiskowych Common Gateway Interface (CGI)

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


Pierwotnie sieć była głównie systemem do wysyłania i odbierania żądań HTTP. Przeglądarka poprosi o przesłanie strony z żądaniem HTTP, a serwer wyśle ​​stronę do przeglądarki. Sama strona może zawierać takie elementy, jak odniesienia do obrazów, o które prosi przeglądarka przy większej liczbie żądań HTTP. Wszystko było bardzo proste. Ale serwer nie zezwalał na przetwarzanie. W rezultacie opracowano interfejs Common Gateway Interface (CGI).

Dzięki CGI przeglądarka może wysłać żądanie z danymi wejściowymi do serwera, a program CGI odeśle stronę internetową przetworzoną na podstawie wysłanych danych wejściowych. Weźmy wczesny przykład: program CGI, który zwrócił informacje o związkach chemicznych. Przeglądarka wyśle ​​żądanie do programu CGI ze związkiem, o którym użytkownik chciał uzyskać dane, a program odeśle stronę wypełnioną informacjami o tym związku.

Ostatecznie opracowano języki programowania serwerów, takie jak PHP i Python, ale w tamtych czasach było tylko CGI. Mimo to CGI miał wyjątkową zdolność: był niezależny od języka. Jeśli serwer może uruchomić program, CGI może go obsłużyć. Może to być skompilowany program C ++, zinterpretowany skrypt Perla lub cokolwiek innego.

Obecnie programy CGI są głównie dziedzictwem. Ale są chwile, kiedy jest to nadal najlepszy sposób na rozwiązanie problemu. Przyjrzyjmy się bliżej zmiennym środowiskowym, które stanowią kręgosłup systemu.

Zmienne

Jeśli zastanawiasz się nad programowaniem CGI, poniższe zmienne będą bardzo przydatne do obsługi różnych żądań serwera do przetwarzania danych formularzy, co da potężne i wszechstronne programy. Aby uzyskać dostęp do tych zmiennych, należy pobrać wpis z tablicy wartości odnoszących się do środowiska. Na przykład w Perlu można pobrać wartości z tablicy $ ENV przy użyciu kluczy zmiennych środowiskowych podobnych do następujących:

$ ENV {$ env_var}

W powyższym fragmencie kodu env_var odnosi się do klucza lub łańcucha zmiennej środowiskowej, takich jak SERVER_NAME. Inne języki programowania mają własne systemy do zarządzania zmiennymi środowiskowymi. Sprawdź referencje dla swojego konkretnego języka.

Oto zmienne CGI i ich działanie:

TYP UWIERZYTELNIANIA

Niektóre serwery WWW chronią dostęp do skryptów CGI za pomocą autoryzacji. Zmienna AUTH_TYPE odnosi się do typu autoryzacji, którego serwer używa do weryfikacji użytkowników. Na przykład możliwą wartością dla tej zmiennej może być Podstawowa, odnosząca się do Podstawowego uwierzytelnienia. Pamiętaj, że nie wszystkie serwery obsługują autoryzację.

CONTENT_LENGTH

CONTENT_LENGTH podaje długość treści dostarczonej za pośrednictwem żądania jako liczbę bajtów. Jeśli długość jest nieznana, zmienna zostanie ustawiona na -1.

TYP ZAWARTOŚCI

Zmienna CONTENT_TYPE zawiera typ pliku zwracanego przez żądanie. Na przykład, jeśli wymagana jest strona internetowa, zmienna CONTENT_TYPE byłaby ustawiona na typ MIME text / html.

GATEWAY_INTERFACE

Jeśli chcesz wiedzieć, jaką wersję specyfikacji CGI obsługuje serwer, możesz przesłać zapytanie do GATEWAY_INTERFACE. Ta zmienna pomoże upewnić się, że używasz właściwej wersji specyfikacji i prawidłowych poleceń.

HTTP_ACCEPT

Podobnie jak CONTENT_TYPE dostarcza dane lub typ MIME, który jest dostarczany, HTTP_ACCEPT zawiera listę wszystkich możliwych typów MIME, które może zaakceptować klient wysyłający żądanie. Lista typów jest oddzielona przecinkami.

HTTP_USER_AGENT

HTTP_USER_AGENT podaje nazwę programu, którego klient używa do wysłania żądania. Na przykład, jeśli użytkownik uruchomi skrypt CGI z Mozilla Firefox, HTTP_USER_AGENT wskazywałby, że użytkownik wysłał żądanie do serwera WWW za pośrednictwem przeglądarki Firefox.

PATH_INFO

Zmienna PATH_INFO zawiera dodatkowe informacje widoczne po nazwie skryptu CGI. Na przykład, jeśli wykonasz www.placeholder.com/cgi-bin/hello.pl/index.html, wówczas PATH_INFO to będą znaki występujące po nazwie skryptu CGI lub /index.html w tym przykładzie.

PATH_TRANSLATED

Podczas wpisywania adresu skryptu CGI w przeglądarce internetowej zwykle wpisujesz ścieżkę wirtualną, która jest odwzorowana na fizyczną lokalizację na serwerze. Na przykład, jeśli przejdziesz na stronę http://www.somewebsite.com/cgi-bin/index.cgi i zapytasz o zmienną PATH_TRANSLATED, otrzymasz rzeczywistą ścieżkę fizyczną. Jeśli korzystasz z udostępnionego serwera unix, może to być /home/placeholder/public_html/cgi-bin/index.cgi.

kupon hostingowy

Potrzebujesz wysokiej jakości hostingu dostępu do CGI?
GreenGeeks uzyskał bardzo dobre wyniki w naszych testach prędkości i wydajności. Czytelnicy mogą obecnie zaoszczędzić nawet 60% swoich planów. Skorzystaj z tego specjalnego linku zniżkowego
dostać ofertę.

QUERY_STRING

Często informacje o zapytaniach są dołączane do adresu URL po znaku zapytania. W przypadku adresu URL http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&wykrzyknik = true, żądanie QUERY_STRING zwróci nazwę = Leroy&wykrzyknik = zwracana prawda.

REMOTE_ADDR

Zmienna REMOTE_ADDR podaje adres IP komputera klienckiego wysyłającego żądanie. Zasadniczo REMOTE_ADDR jest REMOTE_HOST rozwiązany na adres IP.

REMOTE_HOST

Serwery WWW stale akceptują zarówno połączenia, jak i żądania klientów. Zmienna REMOTE_HOST odnosi się do nazwy hosta klienta, który wykonuje żądanie. Na przykład, jeśli twój hosting przyjmuje prośbę od webhost2.com, wtedy REMOTE_HOST będzie wypełniony webhost2.com.

REMOTE_IDENT

Zmienna REMOTE_IDENT przechowuje identyfikator użytkownika uruchamiającego skrypt CGI. Identyfikator użytkownika jest przechowywany tylko wtedy, gdy proces ident jest uruchomiony, ponieważ ident zwraca odpowiedź zawierającą nie tylko informacje o identyfikatorze użytkownika, ale także nazwę systemu operacyjnego uruchamiającego skrypt.

REMOTE_USER

Zapytanie o zmienną REMOTE_USER da informacje o nazwie użytkownika podmiotu składającego żądanie. Jest to ważne tylko wtedy, gdy włączone jest uwierzytelnianie.

REQUEST_METHOD

REQUEST_METHOD podaje typ zakończonego żądania HTTP, który zawiera wartości takie jak GET, POST i PUT.

SCRIPT_NAME

Jeśli zamiast tego chcesz uzyskać wirtualną ścieżkę wykonywanego skryptu, możesz po prostu zapytać o zmienną SCRIPT_NAME. Na przykład, jeśli uruchomisz skrypt http://www.placeholder.com/cgi-bin/ping.sh i odzyskasz SCRIPT_NAME, otrzymasz wirtualną ścieżkę skryptu lub /cgi-bin/ping.sh.

NAZWA SERWERA

Zmienne SERVER_NAME podają pełną nazwę twojego serwera. Na przykład, jeśli zapytasz o tę zmienną, wynikiem będzie nazwa domeny witryny. Na przykład coś takiego jak www.placeholder.com.

PORT SERWERA

Każdy serwer działający w Internecie ma zarówno adres, jak i port. Serwer używa portu do akceptowania połączeń i nasłuchiwania żądań. Standardowy port to 80, ale mogą to być inne numery – szczególnie dla wyspecjalizowanych aplikacji. Zapytanie o zmienną SERVER_PORT da wartość portu nasłuchującego.

SERVER_PROTOCOL

Możesz dowiedzieć się, jakiego protokołu używa serwer do obsługi żądań. Na przykład, jeśli serwer, z którym pracujesz, używa protokołu HTTP, zwróci ciąg taki jak „HTTP / 1.1”, co oznacza, że ​​serwer używa HTTP w wersji 1.1. Zasadniczo zwracany ciąg ma format protokół / wersja.

OPROGRAMOWANIE SERWERA

Zmienna środowiskowa SERVER_SOFTWARE zawiera nazwę i wersję oprogramowania działającego na serwerze WWW. Na przykład, jeśli wypiszesz wartość tej zmiennej i uruchomisz wersję Apache, możesz otrzymać coś podobnego do następującego:

Apache 2.4.25

Wniosek

Jednym z pierwszych kroków, które można podjąć, aby zrozumieć CGI lub protokół HTTP, jest zapoznanie się z podstawowymi zmiennymi i składnią. Obejmuje to właśnie opisane zmienne środowiskowe. Chociaż CGI jest obecnie rzadko używany, wiele obecnych języków programowania WWW, takich jak PHP, również używa wielu z tych zmiennych. W rezultacie ich nauczenie pomoże ci pisać solidne programy nawet dla obecnych języków programowania.

Dalsza lektura i zasoby

Mamy więcej przewodników, samouczków i infografik związanych z kodowaniem i programowaniem:

  • Wprowadzenie do PHP i zasoby: jest to jeden z największych języków kodowania w Internecie.
  • CGI Primer: zacznij od podstaw CGI.
  • Samouczki CGI i zasoby: dowiedz się, jak posunąć CGI tak daleko, jak to możliwe.

Jakiego kodu należy się nauczyć?

Mylisz się w jakim języku programowania powinieneś nauczyć się kodować? Sprawdź naszą infografikę, jakiego kodu powinieneś się nauczyć? Nie tylko omawia różne aspekty języków, ale odpowiada na ważne pytania, takie jak: „Ile pieniędzy zarobię na programowanie PHP na życie?”

Jakiego kodu powinieneś się nauczyć?
Jakiego kodu należy się nauczyć?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me