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ı
Etiketler
abstraction
Accord Framework
ajax
android
architecture
Array
assets
async task
AsyncTask
authorization
avd
billy joel
button
Classification
collections
component
concurrency
container
data science
database
Decision Tree
Decision Trees
dhcp
distributed
donma
emülatör
encapsulation
exception
express
Feature extraction
Feature Selection
garbage collection
glassfish
google
grafik
güvenlik
hadoop
http
IDE
inheritance
j2ee
jade
java
java.lang
JDBC
jls
JNDI
JSF
jsp
kitap
lib
link
Machine Learning
Marmara Üniversitesi
material design
maven
mongodb
multiple inheritance
nested class
netbeans
network
node.js
NoSQL
oop
Oracle
ORM
pass-by-value
pattern
permission
polymorphism
PrimeFaces
primitive
Project Euler
protocol
R
response
REST
RMI
root
Scala
servlet
Set
sözlük
spring
sqlite
tasarım desenleri
tcp/ip
template
test
thread
tier
toast
tomcat
türk telekom
twitter
UI thread
virtual device
web application
web design
web service
WEKA
wireshark
Hiç yorum yok:
Yorum Gönder