Anasayfa > Programlama > PHP > PHP Ile Programlanmis Web Sayfalarinin "Istemci" Bilgisayarda Goruntulenmesi

PHP Ile Programlanmis Web Sayfalarinin "Istemci" Bilgisayarda Goruntulenmesi




Giris :
PHP'nin yuklenmesini bir kac adimda gerceklestirmistik.

Bunlardan birincisi web sayfalarimizi internet'te sunacak bir "Web Server" programinin sisteme
yuklenmesi ardindan da "PHP" nin yuklenmesi ayrintili sekilde aciklanmisti.PHP ile yazilmis
programlarin istemci bilgisyarda gosterimine gecmeden once,birkac temel terimi aciklamak
istiyorum.

Ilk olarak "request-response" yani "istek-cevap" terimlerini inceleyelim.

Bir internet kullanicisi herhangi bir sayfaya ulasmak istediginde aslinda o sayfanin yayinlandigi
"Server" yani sunucu bilgisayara bir "istek" gonderir.Bu istek "Sunucu" bilgisayarda islenir ve
"cevap" gonderilir.Tum bu iliski "client- server" iliskisi olarak yani "istemci-sunucu" iletisimi
olarak adlandirilir.
Simdi'de bu iletisimin saglanmasinda kullanilan protokole yani"TCP/IP" protokolune kisaca goz
atalim.

Istemci bilgisyar kullandigi tarayici program ile sayfaya ulasmak istediginde tarayici program bu
bilgiyi isleyerek TCP (Transmision Control Protokol) yardimiyla Server'a iletir.TCP/IP nin en guzel
yani bilginin (Bilgi Paketleri veya IP paketleri) cok hizli ve kolay olarak tekrar
yonlendirebilmesidir.Tarayici program paketleri Networke gondermeden once baska bir protokol "HTTP"
(Hyper Text Transfer Protocol)yardimiyla etiketler.

Kisaca olaya netlik kazandirmak istersek TCP/IP yi Posta Servisine HTTP'yi ise mektuplarin
uzerindeki pul ve adres etiketine benzetebiliriz.

Biraz ayrntiya girelim ve genel olarak bir HTTP istegi ve HTTP cevabi hangi ogelerden olusur
inceleyelim.

Hepimiz bir internet sayfasi goruntulemek istedigimizde kullandigimiz browser bir HTTP istegi
hazirlayarak bunu sayfanin yayinlandigi server'a gonderir.Bu istek asagidaki ogelerden olusur.

Her HTTP isteginin ilk satiri uc parca bilgi icerir.

HTTP komutu bilinen adiyla "method"

Istegimizin hangi sayfa icin oldugu.(Dosyanin server uzerindeki yolu)

Kullandimiz bilgisyarda yuklu olan HTTP'nin versiyonu.
Bir ornek vermek istersek,ilk satirmiz su sekilde olacaktir.

GET /istenilensayfa.htm HTTP/1.1

Genel olarak kullanilan methodlarin bazilari soyledir.

GET: Bu HTTP komutuyla servera yazdigimiz URL icin istekte bulunuyoruz.

HEAD : GET ile aynidir fakat herhangi bir data icermez.

POST : Bu istek komutu ile servera datanin bir kisminin HTTP body icinde yer alacagini
soyluyoruz.HTTP body si icinde giden bilgi daha sonra server uzerindeki data handling (veri
isleme)programi tarafindan islenecektir.(Web server uzerinde yer alan data isleme)

HTTP tarafindan desteklenen bir cok degisik method komutu bulunmaktadir.Bunlardan bazilari soyledir
:

PUT,DELETE,TRACE,CONNECT

Daha detayli bilgi almak icin RFC 2068 dokumanini okuyabilirsiniz.(www.rfc.net)

HTTP Header (HTTP Baslik)

Ikinci gonderilen veri biti HTTP Header'dir.Hangi tur dokumanlarin istemci tarafinda
goruntulenebilecegini ve browser tipi gibi istemci ile ilgili detaylari icerir.Uc kisimdan olusur.
General : Istemci veya server ile ilgili bilgi icerir.

Entity : Istemci - server arasinda gonderilen data ile ilgili bilgi icerir.

Request : Istemci tarafi ile ilgili konfigurasyon ve hangi tur dokumanlarin kabul adilip
edilemeyecegi bilgisini icerir.
Ornek bir HTTP Header asagidaki gibidir.

Accept: */* Accept-Language : en-us Connection : Keep-Alive Host :
http://www.turk-php.com Referer :
http://www.turk-php.com/index.php?sayfa=onerensayfa User-Agent : Mozilla (X11; I ; Linux 2.0.16
i686)

HTTP Body(HTTP Govdesi)

Eger istek yapilirken POST metodu kullanilirsa istek icerisinde bir kisim data HTTP Body icerisinde
gonderilir.Diger butun hallerde istek sirasinda HTTP Body bostur.

HTTP Response(HTTP Cevap)

Cevap satiri iki bit bilgi icerir :
HTTP Versiyonu

HTTP isteginin nasil yorumlandigi.Istek kabul edildi ise basarili, degilse basarisiz seklinde deger
alir.
Ornek bir server cevabi su sekildedir.

HTTP/1.1 200 OK

Bu ornekte istek kabul edilmistir.200 durum kodudur ve OK in numerik karsiligidir.

Bazi HTTP durum kodlari soyledir.

100-199 Bilgi iceren kodlar.Gonderilen HTTP isteginin islenmekte oldugunu istemci tarafa gondermek
icin kullanilir.

200-299 Basarili istekler icin server bu kod araligindaki sayilari kullanarak cevap verir.

300-399 Server gonderilen istekle ilgili verilerin daha islenmedidigini istemciye bildirmek icin bu
kod araligindaki kodlari kullanir.

400-499 Istemci hatalari ile ilgili kodlar.(Hani ulasmak istedigimiz sayfaya gitmek icin yanlis bir
URL yazdigimizda aldigimiz HTTP 404 Hata mesaji gibi)Server bilgiyi basarili sekilde almis fakat
bilgi yanlis veya olmayan bir sayafaya isaret ediyor.

500-599 Server tarafi ile ilgili hatalar.(Gonderilen istek durum olarak iyi gozukuyor fakat
yazdigimiz kodlardaki bir hata yuzunden server veriyi isleyemiyor olabilir.Server uzerinde dosya
paylasim izinleri ihlal ediliyor olabilir vb.)

HTTP Header (HTTP Baslik):

HTTP cevap basligi (header) daha once inceledigimiz "istek basligi" ile benzerdir.
General : Isemci veya servera ozel olmayan genel bilgiler.

Entitiy : Gonderilen veri ile ilgili bilgi icerir.

Response : Serverin gonderdigi cevaba ait bilgiler.
Ornek bir Server Response (Server Cevabi) soyledir.
*********************************************************** ********** HTTP/1.1 200 OK
----------->Durum Satiri Date : Mon,1st Nov 1999, 16:12:23 GMT---------->General Server :
Apache/1.3.12 (Unix) (SuSE/Linux)PHP/4.0.2 -----------------> Response Last-modified: Fri ,29th Oct
1999, 12:08:03 GMT ------------->Entitiy ***********************************************************
**********
HTTP Body : Eger istek basarili ise cevabin body kisminda istenilen web sayfasina ozgu HTML
gonderilir.Browser cozumlemesi icin hazirdir.
Tum Bu Islemler Icinde PHP'nin Yeri

Server ile istemci arasindaki bu trafigi anladigimiza gore bir server tarafli scripting dili olan
PHP tum bu islemler sirasinda nereye giriyor bunu inceleyelim.

Detaylara girmeden kisaca aciklamak istersek,eger Web Server istenilen sayfa bir php sayfasi ise
bunu PHP Scripting Engine denilen, ve turkcesi PHP Script Motoru olarak cevirebilecegimiz bu motora
islenmesi icin gonderir.

Isleme iki kisimmdan olusur.Birinci kisim "parsing" dedigimiz islenmeden onceki ilk yazim
kontroludur.

Genel olarak script gozden gecirilir yanlislik varmi diye bakilir.Bu yanlislik asla bir dosya izin
ihlali gibi degildir.

Bunlar ikinci kisimda "execution" kisminda ortaya cikar.Bu ilk kisimda aslinda gramer ve dilbilgisi
diyebilecegimiz genel yazim hatalri varmi diye bakilir.

Yani kisaca Kod icerisinde serverda bir dosya ihlaline sebep olacak veya hic olmayan bir dosyaya
isaret eden kod olabilir.Ama "parsing" kontrolunden yuzde yuz gececektir.Cunku kodlar dogru
ciktilari yanlis olabilir.

Ikinci kisim "Execution" da ise satir satir PHP kodlari islenir ve gereken HTML dinamik olarak
yaratilir.Eger tum islemler basarili bir sekilde tamamlanirsa PHP motoru bunlari Web Server'a iade
eder Web Serverda bunlari kullanici bilgisayarina gonderir.

Daha ileriki konulara gecmeden hazir yeri gelmisken bir kac ifadeyi belirtmek istiyorum.

Kullanici bilgisyarinda (Istemci) yuklu olan browser her zaman icin kendi "cache" inden yani
onbelleginden sayfalari kullaniciya gostermek ister.

Kullanici eger PHP sayfasini bir kere goruntulemis ise bu kullancinin bilgisayarindaki browser
programi tarafindan onbellege alinir.

Yani server uzerindeki sayfanin bir kopyasi browserin onbelliginde saklanir.Kullanici sayfayi
tekrar goruntulemek isterse sayfa server uzerinden degil de browserin kendi cache'inden kullaniciya
gosterilir.

Eger altin doviz borsa gibi aninda degisen veri setleri kullaniyorsak bu istemedigimiz bir olaydir
ve daha isin basinda browsera sayfayi kullanicinin bilgisyarinda "cache" etmemesini
soyleyebiliriz.Iste bu noktada HTTP header lari kullanilabilir.

Not : Bu olay ayni zamanda rahat bir web gezintisi saglanmasi icin kullanicin yararinadir.Kullanci
herseferinde "refresh" tusunu kullanarak sayfanin yeniden yuklenmesi ile ugrasmayacaktir.



Hepsi bu kadar artik sayfamiz herseferinde Server uzerinden yuklenecektir.Bu da herseferinde PHP
nin kodlari tekrar isleyerk kullaniciya istedigimiz taze guncel bilgileri gondermesini
saglayacaktir.

Ornek Dosyalar

http://www.turk-php.com/ornekler/http-aciklamali.gif

http://www.turk-php.com/ornekler/http-istek-cevap.gif

http://www.turk-php.com/ornekler/istemci-webserver.gif
Her turlu gorus veya sorunuzu mail le iletebilirsiniz.

serkan@turk-php.com
Program: http://www.turk-php.com/ornekler/istemci-webserver.gif Referans:
http://www.turk-php.com/ornekler/http-istek-cevap.gif

Bu makale hakkında ek bilgi eklemek için buraya tıklayınız

Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 3-2-2006  Okunma: 3028

Bu Makaleye Verilen Puan:    Bu makaleye puan verilmemiş.
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
Reklam Netinternet
Bazı hakları saklıdır: İçeriğin editör ve yazarlarımız tarafından oluşturulan kısımları ve site tasarımının hakkı saklıdır.  Bu sayfa en iyi 1280x1024 ve 1024x768 çözünürlükte izlenir.
Powered by BilgiPortal v2.2
Emlak Yorumlar Müzik estetik