Masaüstü Uygulamasından ASP.NET Sayfalarıyla Etkileşim Fatih BoyMicrosoft MVP (Visual C#)Birim Bilgi Teknolojileri
http://fatihboy.comhttp://enterprisecoding.com
Fatih Boy
Microsoft MVP (Visual C#)Proje MüdürüBirim Bilgi Teknolojileri
/Enterprisecodinghttp://fatihboy.com
http://enterprisecoding.com /fatihboy
Hyper Text Transfer Protocol
En basit şekliyle bir istek;
GET http://enterprisecoding.com/ HTTP/1.1CR LF
Host: enterprisecoding.comCR LF
HTTP İstek Yapısı
İstek Metodu
İstek Adresi
Protokol
Sunucu Başlığı (Host Header)
HTTP İstek YapısıBir Başka Örnek;
GET http://enterprisecoding.com/ HTTP/1.1Accept: text/html, application/xhtml+xml, */*Accept-Language: tr-TRUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)Accept-Encoding: gzip, deflateConnection: Keep-AliveHost: enterprisecoding.comCookie: abc=123
Web sayfalarında en sık kullandıklarınız
İstek Metodları−GET−POST−HEAD−PUT−DELETE−TRACE−OPTIONS−CONNECT−PATCH
İstek Metodları - POST
−Genellikle «application/x-www-form-urlencoded» içerik türüne sahiptir
−Veri anahtar ve değer ikilisi olarak gönderilir−Gönderilen her bir anahtar-değer ikilisi
birbirinden “&” karakteri ile ayrılmaktadır−Anahtar ve değer arasında ise “=” karakteri
yer almaktadır−Gönderilen veri içerisindeki boşluklar “+”
karakteri ile yer değiştirdikten sonra da kalan diğer karakterlere URL encoding uygulanır
İstek Metodları - POST
Anahtar Değer
Adi Ali Veli
Soyadi Örnek
Sehir İzmir
Ulke Türkiye
Bu anahtar-değer ikilileri için oluşturulacak olan POST ;
Adi=Ali+Veli&Soyadi=%c3%96rnek&Sehir=%c4%b0zmir&Ulke=T%c3%bcrkiye
HTTP Yanıt YapısıDurum Bilgisi
HTTP/1.1 200 OKDate: Sun, 26 Feb 2012 20:28:23 GMTServer: Apache/2.2.21 (Unix) FrontPage/5.0.2.2635X-Powered-By: PHP/5.2.17Vary: Cookie,Accept-EncodingX-Pingback: http://www.enterprisecoding.com/blog/xmlrpc.phpExpires: Wed, 11 Jan 1984 05:00:00 GMTCache-Control: no-cache, must-revalidate, max-age=0Pragma: no-cacheLast-Modified: Sun, 26 Feb 2012 20:28:25 GMTSet-Cookie: client=done;path=/;Keep-Alive: timeout=5, max=400Connection: Keep-AliveContent-Type: text/html; charset=UTF-8Content-Length: 87109
Sunucu ve Kaynak Bilgisi
Çerezler (Cookies)
İlk İstek
− HTTP durumsuz bir protokoldür− Durum bilgisi çerezler yardımıyla tutulabilir− Çerezler sunucuya açık text olarak transfer edilir
İstemci ilk HTTP isteğini yapar
İkinci İstek
Yanıt içerisinde Set-cookie:<çerez>
İstemci
Standart HTTP yanıtı
Sunucu
İstek içerisinde Set-cookie:<çerez>
DemoFiddler ile istek/yanıt takibi
DemoPHP sayfasına veri gönderimi
ASP.Net Sayfaları - Zorluklar• View state (__VIEWSTATE )
Bir ASP.Net web sayfasına ait durum bilgisinin saklandığı form elemanı
• Event validation (__EVENTVALIDATION)
• En kaba anlatımla sayfada gerçekleşen bir olayın sunucuya bildirilmesidir
• ASP.Net, istemci tarafında oluşan olayları sunucuya bildirebilmek için sayfadaki Form’u bir javascript yardımıyla sunucuya POST yöntemi ile göndermektedir
• Sayfada bu amaçla __doPostBack javascript fonksiyonu kullanılmaktadır
ASP.Net Sayfaları – Olay BildirimiPost back
function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); }}
Postback’e neden olan
kontrol
Olay’a ilişkin argümanlar
DemoASP.Net sayfasına veri gönderimi
Faydalı Kaynaklar• Enterprisecoding
http://enterprisecoding.com
• Hypertext Transfer Protocolhttp://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
• Fiddler2http://fiddler2.com
• Chad Sowald's Request-To-Codehttp://www.chadsowald.com/software/fiddler-extension-request-to-code
Teşekkürler
Fatih BoyMicrosoft MVP (Visual C#)Birim Bilgi Teknolojileri
http://fatihboy.comhttp://enterprisecoding.com