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.
//////////////KUTU BITTI////////
Ş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.
<asp0005.tif>
ASP.DLL, kendisine bir .asp dosyasının geldiğini görünce, hemen
ASP'lerin Anayasası olan global.asp'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=ISO-8859-9">
<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:
<HTML>
<HEAD>
<TITLE>VBScript ile Tarih</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<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.
<asp0006.tif>
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.
////////////////////////////KUTU//////////////////
Asp Derslerinin diğer Sayfaları için
tıklayınız
1
2
3
4
5
6
7 |