ana sayfa : araştırma : uzaktan web tasarımı : cgi [ 2 / 5 ] 

GERİ

CGI

 

Bu ifade Common Gateway Interface kelimelerinin baş harflerinden oluşmuştur. Türkçe de Ortak Geçit Arayüzü anlamına gelmektedir. Adından da anaşılacağı gibi Web sunucusu ve CGI programcıkları (Scripts) arasında bir geçit teşkil etmektedir. CGI Web Gözatıcısı (Browser)’ndan girişleri alabilmeyi ve çıkışları ona yollayabilmeyi mümkün kılar. CGI programcıkları aynen SQL (Structured Query Language)’de olduğu gibi herhangi bir pogramlama dilinde yazılabilmektedir.  Programlamayı zaten bilen bir insan için CGI’yı öğrenmek oldukça kolaydır. CGI’yı öğrenebilmek için programcıkla Web sunucu arasında bilginin nasıl birinden diğerine geçirildiğini bilmek gerekir. CGI bir programlama dili olmadığı için bir programlama dili bilmek gerekir. Bu CGI programcığı yazabilmek için gereklidir.

Basit bir CGI programcığı aşağıda görülmektedir:

Liste 1-İlk CGI programcığı

 

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

print "<H1>Simple CGI Script</H1>\n";

print "This is my first CGI script!\n";

Bu örnek Perl dili kullanılarak yazılmış bir örnektir. Yine tez içinde verilen örneklerin çoğu Perl 5’te yazılmış ve Unix sistemlerde çalışacak şekilde ayarlanmış olacaktır. Fakat bu basit örnekleri Windows sistemlerde de test etmek mümkün olacaktır. Eğer bunu yapmak isterseniz bir UNIX çevresel değişkeni olan programcık başındaki “#!/usr/local/bin/perl” ifadeyi silmelisiniz. Yukarıdaki örnek standart çıkışa yalnızca iki tane mesaj yazmaktadır. Çoğu durumda standart çıkış birimi monitördür. Bunun yanısıra CGI programcıkları için standart çıkış Web sunucudur. Dolayısıyla da Web görüntüleyicisi olmaktadır.

Perl yalnızca yorumlayıcı bir dil olduğu için örnekteki kodlar bir metin dosyasına yazılıp .pl uzantılı olarak kaydedilir. Perl 5 yorumlayıcısı (interpreter) kullanılarak çalıştırılır. UNIX sistemlerde dosyaya çalıştırılabilir (executable) özelliği verilmelidir. Windows ve Macintosh sistemler için de Perl 5 yorumlayıcısı vardır. Perl 5 yorumlayıcısını ücretsiz olarak www.perl.com sitesinden edinmek mümkündür.

.pl uzantılı dosyaları Web sunucusunda bulunan cgi-bin dizinine kopyalamak gerekir. Bu UNIX sistemler için gereklidir. Windows sistemlerde ise O'Reilly & Associates, Inc. tarafından sağlanan WbSite Web Server programını Web sunucu olarak kullanmak mümkündür. Bu durumda .pl uzantılı dosyaların cgi-shl klasörüne konması gerekmektedir.

Kod 1’de gösterilen komutlar yukarıda anlatıldığı şekilde ayarlanıp çalıştırılırsa Şkil 1’deki görüntü elde edilir.

 

Şekil 1-İlk örneğin ekran çıktısı

Bu programcık gözatıcı (browser) ile çalıştırıldığında; ilk önce gözatıcı uzaktaki sisteme cgi-bin klasöründeki kodun kayıtlı olduğu dosya için bir HTTP isteği yollar. Uzaktaki sistem (makine)’de bulunan Web sunucu isteği alır ve cgi-bin klasöründeki bu dosyayı bulur. Çünkü istek cgi-bin klasöründeki bir doküman içindir. Web sunucu bu dokümanın bir CGI programcığı olduğunu bilir ve bunu çalıştırır. Tam bu noktada programcık kontrolü ele alır ve komutlar çalıştırılır ve çıktılar standart çıkış ünitesine aktarılır. Doğal olarak bu yine Web sunucusudur. Web sunucu programcıktan dönen veriyi alır ve başlığını kontrol eder. Çalıştırılan programcığın başlığında “Content-type: text/html” ifadesi yer almaktadır. Bu başlık sunucuya bunun bir HTML olduğunu söyler. Web sunucu bu durumda bir HTTP cevabı oluşturur ve bu cevapla birlikte CGI programcığının çıktısını kendisini arayan Web gözatıcısına yollar.

Kod 1’in içindeki

 

print "Content-type: text/html\n\n";

 

ifadesi CGI’ya özeldir. Diğer iki satır ise HTML  formatında basit bir çıktı yaratır ve bu da gözatıcı içinde gösterilir.

 

Cgı neden kullanılır?

 

CGI çok fonksiyona sahip dinamik ve interaktif Web dokümanları üretebilir. Bu nedenle tercih edilir. Ama  bunların tümünü CGI kullanmadan da yapabiliriz. Yine de CGI’nın yetenekleri bu konuda daha fazladır.

 

Dinamik Web Sayfaları

 

Hatırlanacağı gibi World Wide Web; Web gözatıcıları ve Web sunucuları olmak üzere ikiye ayrılır. Haberleşme içinse HTTP'yi kullanır. Ve Web sayfalarının çoğu HTML kullanılarak yazılır. Fakat HTML sayfaları sürekli statiktir. Dosyayı açıp içeriğini değiştirmedikçe değişmezler. CGI ise bize çok dinamik sayfalar oluşturmaya imkan tanır. Bir CGI programcığı güncel bilgileri kullanarak bir Web sayfası şekillendirip bunu gözatıcıya yollayabilir. Örneğin günün saatini, tarihini ve ziyaretçi sayısını gösteren dinamik sayfaları oluşturabiliriz. Yalnız başına HTML ile bu işlemler yapılamamaktadır.

Ek olarak CGI bir veritabanını kullanarak dinamik sayfalar oluşturmaya yardım eder. Eğer Web’den ulaşmak istediğiniz çeşitli veriler içeren bir veritabanınız varsa CGI buradaki verilerin tamamını HTML formatında sayfalara dönüştürür. Veritabanındaki bilgiler değiştikçe de sayfalarınız da değişir.