CGI programlarının Browser'la ilişkisini ele aldık. Fakat CGI programı, "Browser için" yazıldığı kadar "Server için" de yazılır. CGI ile Server'ın çalışmasını da programlamış oluruz. Bu yüzden, Server'ın CGI-HTML ilişkisindeki yerini da tanımak zorundayız. Server'ı tanımaya Browser ile istem-sunuş ilişkisindeki yerinden başlayabiliriz. Browser ile Server nasıl alış veriş yapıyorlar; ne alıp, ne veriyorlar!
Ziyaretçi olarak siz Browser'ın URL adres kutusuna, sözgelimi server.com adlı halayî sunucudaki merhaba.htm belgesinin adını (adresini) yazdığınızda neler olur? Bunu kısaca, adım adım görelim:
1. Browser'ın http://www.server.com/merhaba.htm adlı belgeyi talep etmesi, Server'a bir "HTTP Request" (HTTP Talep) komutu göndermesi demektir. "GET" şeklindeki bu komut sadece "Bana şu kaynağı gönder!" şeklinde olmaz. Browser komutun arkasına Browser'ın ne tür belgeler (text, HTML, Access, Excel, vs uygulama programı dosyaları) ve media (GIF, JPEG, Bitmap, vs.) kabul edebileceğini, ve Browser'ın türü ve sürümünü, ve dosya ilgili (varsa) önşartlarını da ekler.
Diyelim ki bir Browser, bir Server'dan index.htm adlı dosyayı istiyor ve bu dosyayı ancak ve sadece 12 Ocak 2000, GMT saat 10:00'dan sonra değişmişse göndermesini şart koşuyor. Bu durumda "HTTP Request" şöyle olur:
GET /index.htm HTTP/1.1
If-Modified-Since: Sun, 12 Jan 2000 10:00:00 GMT
Accept: text-html
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Burada, Browser, varsayılan talep komutu olan GET ile ne istediğini ve ne kabul edebileceğini Server'a bildiriyor.
2. Server bu talebi alınca önce belgeyi arar; bulamazsa Browser'a hata mesajı gönderir. Server, bu dosyayı bulursa, önce uzantısına bakarak, ne tür bir dosya olduğuna karar verir; ve
3. Bu karara dayanarak, gerekli başlık (header) bilgilerini ve dosyanın içeriğini talep sahibi Browser'a gönderir. (Bu arada başlıkla içerik arasına bir boş satır koyması da ihmal etmez! Bu boş satır, Server'ın Browser'a gönderdiği iki önemli veri kümesini birbirinden ayırmaya yarar.)
Bu bilgi aşağı yukarı şuna benzer:
HTTP 1.1 200 OK
Date: Mon, 12 Jul 2002 02:30:49 GMT
Server: Apache 1.3.1
Content-type: text/html
Content-length: 235
Last-modified: Mon, 12 Jan 2000 02:25:00 GMT
14 Mayıs 2008 Çarşamba
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder