5 Mart 2015 Perşembe

HTTP de State ve Session Management

HTTP stateless/non-persistent bir protokoldür. Yani bir istek kendinden önceki isteklerden habersizdir. Böyle olmasının sebebi dizayn edilirken basit olması istendiğindendir.

Fakat bazı internet uygulamalarında, mesela e-ticaret sitelerindeki alışveriş sepeti uygulamasında, bir istekten bir sonraki isteğe durum bilgisi (state) aktarmasını istiyoruz.

Bu durumda protokolü değiştiremeyeceğimize göre, uygulamanın kendisinin state bilgisini yönetmesi gerekiyor.

Birden fazla HTTP requesti arasında state bilgisini taşımak için belli başlı yöntemler vardır:
1. Cookie kullanmak
2. HTML formunda gizli alanlar kullanmak
3. URL rewriting.

Cookie nedir?

HTTP protokolü stateless olarak dizayn edildiğinden, serverlar clientlardan gelen isteklerdeki bilgileri saklamaz.
Madem ki server bilgi saklamıyor, o zaman biz de client'ta bu bilgileri tutarız.
İşte bu fikirle yola çıkan Netscape, bugün yaygın olarak kullanılan client-side cookie kavramını geliştirdi.
Yani client'la ilgili olan bir bilgi yine client'ın makinesinde saklanacak, ve daha sonra durum bilgisi almak için kullanılabilecekti.

Cookie bir serverın browsera gönderdiği küçük bir bilgi parçasıdır. Bu bilgi browserda saklanır.
Browser bundan sonra cookie'yi yollayan adrese (originating host) göndereceği bütün requestlere bu cookie'yi de ekler.
Buradaki önemli nokta, cookie'nin daima ilk olarak geldiği hosta gönderilmesidir. Yani başka hostlara gönderilmez. Bu sayede server bir client'ın (ya da browser'ın) kimliğini unique olarak tespit edebilir.

Bir cookie'nin adı ve değeri vardır, bunun yanında domain, path, expiration date, version number, comments gibi diğer alanları da olabilir.
Domain ve path cookie'nin geri gönderileceği server ve path'ı belirtir.
Cookie'nin expiration date alanı


Hiç yorum yok:

Yorum Gönder