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: #!/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.
|