|
Internet'te ASP
ASP teknolojisi ile oluşturduğunuz sayfaları, yani içinde ASP
teknolojisinin gerektirdiği kodlar bulunan HTML dosyalarını, .asp
uzatmasıyla kaydederiz. Bu dosyalar talep edildiğinde, Web Server
programı, eğer ASP teknolojisini tanıyorsa, talep edilenin ASP
sayfası olduğunu dosya adının uzatmasından anlar; ve bu sayfayı
ziyaretçiye yollamadan önce kendisi işleme tabi tutar. ASP
sayfamızdaki kodlar büyük bir ihtimalle bir takım dinamik işler
yapacak, örneğin hesaplamalar, araştırmalar, veri tabanından veri
çekme, dosya sisteminden dosya isteme gibi görevlerini yerine
getirecek, ve ortaya çıkacak olan HTML dosyasını ziyaretçiye
gönderecektir. Diyelim ki bu kitapçıktaki örnekleri yaptınız ve
ücretsiz Site yeri edinmiş olduğunuz Hosting firmasının
bilgisayarındaki sitenize yerleştirdiniz. Sonra Browser'ınızın URL
hanesine bu ASP dosyasının adını yazdınız ve sayfayı talep ettiniz.
Karşınıza, ya ASP sayfasının içindeki kodları görüntüleyen veya
sadece sayfanın HTML unsurlarına yer veren bir sayfa geldi! Bu
Server'ınızın ASP anlamadığını gösterir. ASP sayfalarınızı
ASP-uyumlu Web sunucularında çalıştırabilirsiniz. Sitenizde ASP
sayfaları bulunacaksa ve ücretli evsahibi firmalardan site alanı
edinecekseniz, sunucunun ASP-uyumlu olmasına dikkat edin
Şimdi, ilk ASP'mizi çalıştırdığımıza göre, biraz teknikten söz
edebiliriz. HTML'in ziyaretçinin bilgisayarında çalıştığını
biliyorsunuz; istemci Browser, sizin URL hanesine adını yazdığınız
HTML dosyasını yine adresteki sunucu Web Server'dan ister. Web
Server da bu dosyayı bulur ve içinde kayıtlı resim ve diğer
unsurlarla birlikte istek sahibine gönderir. Fakat kimi zaman
Server'a bize sadece bir dosyayı göndermesini değil, fakat bu
dosyanın içinde kayıtlı komutlar varsa onları icra etmesini de
bildirebiliriz. Bunu yapmanın bir yolu CGI programlarıdır. Bir diğer
yolu ise ASP'dir. Web Server, kendisinden bir ASP belgesi talep
edildiğinde, kendi kendine "Dur bakalım! ASP istendiği zaman hemen
alıp göndermek yok, önce bunu ASP.DLL programına gönderelim.. Ondan
sonra işimize devam ederiz!" der.

ASP.DLL, kendisine bir .asp dosyasının geldiğini görünce, hemen
ASP'lerin Anayasası olan global.asa'nin çalışıp çalışmadığına
bakar. global.asa, tıpkı diğer ASP dosyaları gibi bir düz
yazı dosyasıdır ve ASP programlarının çalışma koşullarını düzenleyen
kuralları içerir. (Bu dosyayı sırası gelince ele alacağız.)
Yukarıdaki örnekte gördüğümüz gibi ASP dosyası hem HTML kodları
içerir, hem de içinde bir Script diliyle yazılmış kodlar vardır.
ASP'ye "program" özelliği kazandıran bu Script dili ile yazılmış
kodlardır. ASP.DLL, önce gelen .asp dosyasında hangi Script dilinin
kullanıldığına bakar ve bunun için gerekli ortamı oluşturur; yani bu
Script dilini yorumlayacak programı çalıştırır; bu program Script'i
yorumlar ve icra edilecek komutları icra eder; ASP.DLL, icra edilen
komutlar, işletim sisteminin yardımını istiyorsa (örneğin bir
veritabanından veri çekmek gibi, veya dosya sistemine bir dosya
açtırmak, yazdırmak, sildirmek gibi) bu yardımın edinilmesini de
sağlar. Bütün bu işlerin sonunda sizin yazdığınız HTML kodlarına ek
yapmak (örneğin bir tablonun içini, çekilen verilerle doldurmak veya
dosya sisteminden edinilen bir dosyanın içeriğini sayfaya aktarmak
gibi) gerekiyorsa bu ekleri ASP.DLL yapar.
ASP.DLL, kendisine sevk edilen dosyayı satır satır okur ve önce
dosyadaki ASP kodlarının gerektirdiği HTML değerlerini bulur; yani
önce ASP icra edilir, gereği yerine getirilir. Sonra HTML bölümleri
ile birleştirilip sonuçta sunucuya saf ve temiz bir HTML sayfası
gönderilir. Bu sayfanın içinde bir satır bile ASP kodu bulunmaz.
Eğer sayfanıza ziyaretçinin Browser'ında çalışması amacıyla
Javascript veya VBScript kodları koydu iseniz, elbette bu kodlar
HTML'in parçası olarak ziyaretçiye gidecektir. Fakat giden sayfada
artık ASP'ye ilişkin hiç bir şey kalmamış olacaktır.
Biliyorsunuz, mevcut sürümleri itibariyle Browser programları
içinde Netscape VBScript dilini anlamaz. ASP sayfalarımızda
istediğimiz Script dilini kullanabiliriz; VBScript de
kullanabiliriz. Netscape'in VBScript anlamamasıyla, ASP
sayfalarımızda VBScript kullanmamızın bir ilgisi yoktur; çünkü ASP
sayfasının ortaya çıkartacağı HTML kodunda ASP dolasıyla VBScript
bulunmayacaktır; dolayısıyla ASP sayfalarınız, Netscape tarafından
da anlaşılıp, görüntülenebilecektir. Tabiî ortaya çıkacak HTML
sayfasının Netscape tarafından arzu ettiğiniz gibi
görüntülenebilmesi için Netscape'in anlayabildiği dinamik HTML
unsurlarına yer verme zorunluğunuz hâlâ devam ediyor.
ASP tekniğinin nasıl çalıştığını anladığımıza göre şimdi biraz
terminoloji serpiştirelim ki, Webmaster meslektaşlarınızla biraraya
geldiğinizde, gerçekten ASP ile mesela Javascript arasındaki farkı
bildiğiniz belli olsun. ASP bir Server-Side Script
teknolojisidir. Internet'te istemci ile sunucu arasındaki çizginin
sunucu tarafına Server-Side (Sunucu Tarafı), istemci tarafına
da Client-Side (evet, doğru tahmin ettiniz: İstemci Tarafı)
denir. Server-Side'da çalışan Script programları da "Server-Side
Script" (Sunucu Tarafı Script'i) adını alır. Dolayısıyla şöyle
bir sayfa yaparsanız (merhaba.htm), bu sayfada
Client-Side Script teknolojisi kullanmış olursunuz:
|
|
<HTML> <HEAD> <TITLE>JavaScript
ile Tarih</TITLE> <meta
http-equiv="Content-Type"
content="text/html;
charset=windows-1254"> </HEAD> <BODY
BGCOLOR=WHITE> <H1>Merhaba
Dünya</H1> <H2>Bugün:</H2> <H3>
<SCRIPT
LANGUAGE=JAVASCRIPT> <!-- tarih = new
Date(); document.write(tarih); //--> </SCRIPT>.
</H3> </BODY> </HTML> |
HTML sayfanıza <SCRIPT>..</SCRIPT> etiketleri arasına
yerleştireceğiniz bu kodun çalışması için Server'ın hiçbir şey
yapması gerekmez; kodu Browser çalıştıracak ve günün tarihini size
(Türkçeleştirmediğiniz için İngilizce olarak) bildirecektir. Şimdi,
bir de Server tarafında çalışan Script içeren sayfaya örnek verelim
(merhaba2.asp ). Bu kodu
yazarken kapanan Script etiketinden sonra nokta olduğuna dikkat
edin:
Ve : VBscript ile tarih :
|
|
<HTML>
<HEAD> <TITLE>VBScript
ile Tarih</TITLE> <meta http-equiv="Content-Type"
content="text/html;
charset=windows-1254"> </HEAD>
<BODY
BGCOLOR=WHITE> <H1>Merhaba
Dünya</H1> <H2>Bugün:</H2> <H3>
<SCRIPT
LANGUAGE=VBScript
RUNAT=SERVER> Response.write(Date) </SCRIPT>.
</H3> </BODY> </HTML> |
Bu sayfada kullandığınız Script'i VBScript ile yazdığınızı
farkettiniz. Yani? Bu HTML sayfası, Netscape'de görüntülenemez!
Hayıır. Görüntülenir, çünkü Script'i Netscape değil, Server
çalıştıracak. Bunu <SCRIPT> etiketinin içindeki "RUNAT"
özelliği ile belirtiyoruz. ("Run," çalıştır; "at" ise "içinde,
üzerinde" anlamına gelir. "RUNAT" "...de çalıştır" gibi bir anlama
sahiptir.) Burada RUNAT'in karşısına yazdığımız SERVER ifadesi ile,
Script'in Browser'a gönderilmeden önce Server'da çalıştırılmasını
sağlıyoruz; Server'a "Bu Script'i Server'da Çalıştır!" demiş
oluyoruz.

Netscape bu sayfayı görüntüleyecektir; ama galiba bir terslik
var. merhaba.asp ile merhaba2.asp'nin ekran
görüntülerini ve kodlarını karşılaştırırsanız, birinde noktanın
olması gereken yerde olduğu halde diğerinde noktanın yanlış yerde
olduğunu görüyoruz. Oysa iki kodu da karşılaştırırsanız, ikisinde de
nokta işareti, kodun bittiği yerde yer alıyor. Yukarıda ASP'nin
icrasında HTML sayfa Server'a verilmeden önce ASP.DLL tarafından
içindeki ASP kodlarının icra edildiğini söylemiştik. Nitekim, burada
gördüğünüz gibi, ASP.DLL, HTML sayfayı içinde Server'ın çalıştırması
gereken bölümle birlikte Server'a gönderdi; Server kendisine gelen
dosyada kendi icra etmesi gereken (RUNAT=SERVER özelliği verilmiş
olan Script'i) bölümü icra etti ve sonucu Browser'a aktardı. Yani,
Server'ın çalıştırdığı Script'in sonucu sayfaya ASP'den sonra
eklendi. Dolayısıyla, nokta, yanlış yerde kaldı.
Bundan çıkartacağımız sonuç şu olacak: ASP sayfalarımıza,
Browser, Server ve ASP.DLL tarafından çalıştırılacak kodları
yerleştirirken, sırasına dikkat edeceğiz ve hangi sırada icra
edilmelerini istiyorsak, o sırada koyacağız.
Server ile ASP.DLL'in ilişkisi sadece Script dilini
çalıştırmaktan ibaret değildir. ASP, istemciden gelen HTTP İstemi
(Request) ve HTTP'ye giden Karşılık (Response) unsurlarından
tutun, ActiveX Data Objects (ADO, AcvtiveX Veri Nesneleri)
aracılığıyla, işletim sisteminin sunacağı veritabanına erişim
imkanını ve işletim sisteminin sunduğu dosya yönetimine kadar bir
çok imkanı kullanır. Bu "imkanlar" ASP'nin eline geçtiği anda
"nesne" (Object) sayılırlar. Şimdi bu nesnelere biraz
yakından bakabiliriz.
|