Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

ASP.NET Web İletişimini Anlamak

ASP.NET ile kodlama yaparken bir çok programcı geri planda ne iş yapıldığından habersiz kodlama yapıyor. Bu makalemizde ASP.NET’in kendini biraz daha derinlerine dalış yapacağız.

Client-Server uygulamalarında temel olarak 2 bileşen vardır.

* Client(Front-End Interface) : Web browser’lar burada arayüz olarak kabul edilir ve kullanıcı inputlarını alır ve servera işlenmesi için gönderilirler

* Server(Back-End) : Web serverlar client’tan gelen istekleri işleyerek bir HTML sayfa oluşturur ve bu cevabı client’a döner.

Server ile Client aralarındaki iletişimi HTTP(Hypertext Transfer Protocol) ile sağlar , bu protokol tex bazlı bir ağ protokolüdür ve  TCP 80 portuna atanmıştır. Eğer serverda bir sertifika yüklü kurulu ise bu sefer client ve server iletişim için HTTPS protokolünü kullanır ve TCP 443 üncü portuna atanmıştır.

Server ile Client arasındaki iletişim aşağıdaki adımları takip eder.

1- Kullanıcı browsera adresi girer. http://koraykirdinli.blogcu.com

2- Web browser server’a HTTP protokolü ile başlanır ve GET REQUEST ’i gönderir.

3- Web server istek yapılan sayfayı işletir. Bu olay sonunda web server bir statik html sayfa , bir resim dosyası döndürebilir veya asp.net kodu çalıştırabilir.

4- Web server cevap(RESPONSE) dönmek için yine HTTP protokolünü kullanır. Eğer istek başarılı bir şekilde process edilirse(işlenirse) HTTP Status Code 200 döner. Eğer server sayfayı bulamazsa HTTP Status Code : 404 döner , Sayfanın yeri değiştiyse veya zaman aşımına uğramışsa HTTP 302 döner.

5- Web browser serverdan gelen cevabı HTML sayfa olarak gösterir.

Bu 5 step her bir kullanıcı tıklamasında veya sayfa çağrıldığında tekrarlanır.

Gelişmiş web serverın statik html sayfaları ve resim dosyalarını göstermekten çok daha öte rolleri vardır:

– Gelen isteğin doğrulamak ve doğru olmayan istekleri reddetmek

– Server ve Client arasında SSL(Secure Socket Layer) ile authenticate etmek

– Kullanıcıyı authorize etmek yani erişim yetkisi olan sayfalara izin vermek

– İsteği nasıl handle edeceğini belirlemek.

– Hataları handle etmek

– Çıktıları cache’leyebilmek

– Çıktıyı sıkıştırmak

– Erişimleri loglamak

Request Örneği:

GET /default.aspx HTTP/1.1

Host: www.websitesi.com

HTTP Methodu Açıklama
GET Bir nesne getirir,örneğin web sayfası. GET /test.htm
POST Web server’a işlenmesi için data yollar.Örneğin formadaki Submit butonu ile.
HEAD Sayfayı download etmeden meta bilgisini getirir.
OPTIONS Web Server’da desteklenen komutları listeler
PUT Client’a belirtilen URL de bir resource create etmesine izin verir.
DELETE Web server’da yetkisi varsa bir resource’u siler.
TRACE Test veya dinleme için
CONNECT Dinamik olarak tünel değiştirmek için proxy ile birlikte kullanılır.
DEBUG ASP.NET debugging i başlatır.

Response Örneği

HTTP/1.1 200 OK

Server: Microsoft-IIS/6.0

Content-Type: text/html

Content-Length: 38

Merhaba



***Bütün http status code’larını ezbere bilmesek dahi aşağıdaki 5 grubu bilmek faydalı olacaktır.

STATUS

CODE

GRUBU

AÇIKLAMA

1xx Bilgi Amaçlıdır: İstek alınmış ve server işlemeye devam ediyor.(100:Continue)
2xx Başarılı :Aksiyon başarılı bir şekilde alınmış,anlaşılmış ve kabul edilmiştir.(200:OK,201:Created)
3xx Redirect komutu : Client başka bir resource’a erişmeye çalışmalıdır.(302:Found)
4xx Client Error:Requestte syntax hatası var veya server requeste nasıl cevap vereceğini bilmiyor.(400:BadRequest)
5xx Server Error : Server geçerli görünen requesti karşılamaya çalışırken başarısız olmuş.(500:Internal Server Error)

November 14, 2011 - Posted by | ASP.NET | , , , ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s