Salı, Haziran 6, 2023

CGI

- Advertisement -

CGI
CGI

CGI dosyası nedir?

Bir CGI dosyası, bir web sunucusu tarafından kullanıcı isteklerini işlemek için harici bir program çalıştırmak için kullanılan bir Ortak Ağ Geçidi Arayüzü komut dosyası olarak bilinir.

.cgi uzantılı bir dosyaya kaydedilen script, genellikle C veya Perl programlama dillerinde yazılır. Web geliştiricileri veritabanlarını Web sunucularına bağlamak istediklerinde, Web’in ilk günlerinden beri tanıtılmıştı. Web sunucusu ile veritabanları arasında ortak bir ağ geçidini destekleyen bir sunucu, CGI kodunu yürütmek için çok uygundur.

CGI Dosya Biçimi

CGI betikleri, Web sunucusu tarafından, sahibinin bir URL’nin nasıl işleneceğini yapılandırmasını kolaylaştırmak için kullanılır. Prosedür genellikle yeni bir dizini (belgelerin esas olarak bulunduğu yer) CGI betiklerini içeriyor olarak işaretleyerek yapılır; yaygın olarak bilinen adı cgi-bin’dir.

Örneğin /usr/local/apache/htdocs/cgi-bin, Web sunucusunda bir CGI dizini olarak seçilebilir. Bir Web tarayıcısı, CGI dizini içindeki bir dosyaya işaret eden bir URL istediğinde, o dosyayı (/tr/usr/local/apache/htdocs/cgi-bin/printenv.pl) Web tarayıcısına göndermek yerine, HTTP sunucu belirtilen betiği yürütür ve betiğin çıktısını Web tarayıcısına döndürür. Kısacası, CGI betiğinin standart çıktıya gönderdiği her şey, bir pencere terminalinde gösterilmek yerine Web istemcisine aktarılır.

CGI Örneği

Web sunucusu tarafından iletilen tüm ortam değişkenlerini gösteren Perl ile yazılmış aşağıdaki CGI betiği:

#!/usr/bin/env perl

=head1 DESCRIPTION

printenv — a CGI program that just prints its environment

=cut
print "Content-Type: text/plain\n\n";

for my $var ( sort keys %ENV ) {
    printf "%s=\"%s\"\n", $var, $ENV{$var};
}

Çıktı aşağıdaki gibi olacaktır:

COMSPEC="C:\Windows\system32\cmd.exe"
DOCUMENT_ROOT="C:/Program Files (x86)/Apache Software Foundation/Apache2.4/htdocs"
GATEWAY_INTERFACE="CGI/1.1"
HOME="/home/SYSTEM"
HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_CHARSET="ISO-8859-1,utf-8;q=0.7,*;q=0.7"
HTTP_ACCEPT_ENCODING="gzip, deflate, br"
HTTP_ACCEPT_LANGUAGE="en-us,en;q=0.5"
HTTP_CONNECTION="keep-alive"
HTTP_HOST="example.com"
HTTP_USER_AGENT="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:67.0) Gecko/20100101 Firefox/67.0"
PATH="/home/SYSTEM/bin:/bin:/cygdrive/c/progra~2/php:/cygdrive/c/windows/system32:..."
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
PATH_INFO="/foo/bar"
PATH_TRANSLATED="C:\Program Files (x86)\Apache Software Foundation\Apache2.4\htdocs\foo\bar"
QUERY_STRING="var1=value1&var2=with%20percent%20encoding"
REMOTE_ADDR="127.0.0.1"
REMOTE_PORT="63555"
REQUEST_METHOD="GET"
REQUEST_URI="/cgi-bin/printenv.pl/foo/bar?var1=value1&var2=with%20percent%20encoding"
SCRIPT_FILENAME="C:/Program Files (x86)/Apache Software Foundation/Apache2.4/cgi-bin/printenv.pl"
SCRIPT_NAME="/cgi-bin/printenv.pl"
SERVER_ADDR="127.0.0.1"
SERVER_ADMIN="(server admin's email address)"
SERVER_NAME="127.0.0.1"
SERVER_PORT="80"
SERVER_PROTOCOL="HTTP/1.1"
SERVER_SIGNATURE=""
SERVER_SOFTWARE="Apache/2.4.39 (Win32) PHP/7.3.7"
SYSTEMROOT="C:\Windows"
TERM="cygwin"
WINDIR="C:\Windows"

CGI betiklerinin kullanımları

CGI betiklerini içeren CGI dosyaları genellikle kullanıcıdan gelen girdi verilerini işlemek ve ilgili çıktı verilerini üretmek için kullanılır. Bir wiki uygulamak, CGI programının örneklerinden biridir. Kullanıcı aracısı bir girdinin adı için bir istek gönderirse, Web sunucusu CGI programını çalıştırır. CGI programı, bu girdi sayfasının kaynağını alır, HTML’ye dönüştürür ve sonucu yazdırır.

Web sunucusu, CGI programından çıktı alır ve kullanıcı aracısına geri gönderir. Ardından, kullanıcı aracısı “Sayfayı Düzenle” düğmesine tıklayarak düzenleme işlevini çağırırsa, CGI programı sayfa içeriğiyle birlikte bir HTML metin alanı veya başka bir düzenleme kontrolü gösterir. Son olarak, kullanıcı aracısı “Sayfayı yayınla” düğmesini tıklarsa, CGI programı güncellenmiş HTML’yi o giriş sayfasının kaynağına dönüştürür ve kaydeder.

Önceki İçerikCMD
Sonraki İçerikBTAPP

BENZER YAZILAR

Microsoft, Büyük Dosya Gezgini Güncellemesi Üzerinde Çalışıyor

Dosya Gezgini, Windows'un en popüler özelliklerinden biri olmasına rağmen Microsoft tarafından uzun süredir göz ardı ediliyor, ancak neyse ki, şirket bugünlerde dosya yöneticisi deneyimini...

MP

MP MP dosyası nedir? MP dosyası, Maya 3B modelleme programının Kişisel Öğrenme Sürümü (PLE) ile oluşturulan bir proje dosyasıdır. Yalnızca Maya’nın PLE sürümü tarafından desteklenir ve tamamen ticari...

Samsung, Apple’ın 2024’te Katlanabilir Pazara Katılacağına İnanıyor, Ancak iPhone Bu Form Faktöründe İlk Ürün Olmayacak

Bileşen tedarikçileri ile yaptığı bir toplantıda Samsung, onları bir sipariş akışına hazırlamak için katlanabilir akıllı telefon sevkiyatlarında bir artış göreceğini bildirdi. Şirket şu anda bu...

POBI

POBI dosyası nedir? Bir POBI dosyası, eKitap dosya türüne aittir; aslında bir Kindle Touch Periyodik Verisidir. Bu dosya formatı periyodik MOBI olarak da bilinir; Amazon Kindle Touch e-okuma...

56 Çekirdekli Xeon Platinum 9480 Fiyatı Belirlendi: 12980 ABD Doları

Birkaç gün önce Intel, Xeon Max 'Sapphire Rapids' CPU serisi HBM2e belleğe sahip Intel, serinin performans tahminlerini ve teknoloji özelliklerini içeren teknik bir açıklama...

Ramses Batı Akasyanın Altında-christian jacQ

Elli yaşına gelmiş olan iki ülke hükümdarı Firavun Ramses’in hedefi insanlarını refah içinde yaşatmaktır. Fakat hükümdarın özelliği gereği yaşlılık yılları rahat geçmemektedir. Firavun Ramses...

POPÜLER YAZILAR

Gigabyte, 600 ve 700 Serisi Anakartlarına “Yeni Nesil Intel Masaüstü CPU” Desteği Ekliyor

Gigabyte, 600 ve 700 serisi anakartları için Intel'in yeni nesil masaüstü CPU desteği ekleyen yeni bir BIOS güncellemesini sessizce yayınladı. Gigabyte 600 ve 700 Serisi...

Apple AR Kulaklığını Pazartesi Günü Açıklayacak, Ancak Cihaz Ekim’de Seri Üretime Gireceğinden Lansman Aylar Sürebilir

Apple'ın merakla beklenen AR Kulaklığını Pazartesi günü WWDC etkinliğinde piyasaya sürmesi bekleniyor. Cihaz bir süredir söylenti değirmeninde dinlendi ve birkaç gecikmeden sonra, kulaklık nihayet...

Gmail Doğrulama Rozetlerini hatırlıyor musunuz? Dolandırıcılar Onlardan Yararlanmanın Bir Yolunu Buldu

Google, insanların her e-posta aldıklarında güvende olmalarını sağlamanın çeşitli yollarını araştırmaktadır. Şirket, aşağıdakiler de dahil olmak üzere çeşitli önlemler aldı: yakın zamanda duyuruldu İleti...

Apple’ın 12 Çekirdekli ‘X1’ Yonga Setli AR Kulaklığı, Yeni Benchmark Sızıntısında M2 Max’ten Daha Hızlı Performans Gösteriyor, Ama Ne yazık ki Skorlar Sahte

SoC'nin X1 olarak adlandırıldığını ortaya çıkaran en son kıyaslama sızıntısını duymak bizim için şaşırtıcıydı. 8 çekirdekli bir CPU yerine liste, M2 Max'ten daha yüksek...