www.fatihkabakci.com

Personal Website and Computer Science TUR EN

CEREZ KAVRAMI(COOKIE)

Last update: 4/24/2015 10:42:00 PM

Yazan: Fatih KABAKCI

Bir Cookie(Çerez), sunucunun istemci oturum bilgilerini takip etmek amacıyla, istemci tarafında muhafaza edilen metinsel verilerdir. Yani cookie' ler kullanıcıların sunuculara kendilerini hatırlatmak için kullandığı veri parçalarıdır. Çerezler istemci tarafında tutulur. Bunun anlamı, kullanıcıların kendileri hakkında bir takım bilgileri, yine kendi makineleri üzerinde saklamasıdır. Cookie' lerin kullanım amacı ise, kullanıcıların sık ziyaret ettiği web sayfalarına, defalarca aynı verileri yazmadan kolayca erişebilmektir. Örneğin bir web sitesine üyeliği bulunan bir kullanıcı, her defasında login olmak yerine, basitçe 'beni hatırla' seçeneğini belirterek, ilgili web sayfasında bağlı kalabilir. Böylelikle o siteye her girdiğinde tekrar tekrar kullanıcı adı, şifre gibi bilgileri yazmak zorunda kalmayacaktır. Başka bir örnek olarak da, online alış veriş siteleri gösterilebilir. Kullanıcılar ilgisini çeken bir takım ürünleri, sunucunun önermesiyle kendi tarayıcılarına kaydederek, sonraki girişlerde sevdiği ürünler dahilinde arama yapabilirler. Böylelikle her ziyarette aynı verileri tekrar tekrar girme zahmetinden kurtulmuş olurlar. Tarayıcılar genelde 2MB' ye kadar cookie saklamaya izin verirler. Ayrıca cookie' lerin yaşam ömrü genelde tarayıcılar kapatılana kadardır. Bu sebepten ötürü sunucu tarafında yazdığınız uygulamalarda buna dikkat etmeniz gerekebilir.

Cookie' lerin çalışma mantığını aşağıdaki basit bir senaryo ile daha iyi anlamaya çalışalım.

Cookie(Çerezler)

Yukarıdaki diyagramda, bir istemci browser kullanarak bir web sunucusuna erişmek ister. Örnek olarak Veli isimli bu kullanıcı www.fatihkabakci.com adresine erişmek istesin. Veli bu url i tarayıcısının adres satırına girdiğinde, taracıyı varsayılan durumda sunucuya bir HTTP GET sorgusu başlatır. Sunucu bu isteği ilk kez aldığında, bu isteğe yolladığı HTTP 200 OK cevap mesajının başlık bilgisine Set-cookie header' ını ekler. Bu, sunucunun ilgili kullanıcıyı bundan sonra tanıması için kullandığı bir bilgidir. Bu bilgi, kullanıcı hakkında herhangi bir bilgi olabilir. İstemci bu bilgiyi cevap mesajında sunucudan alarak kendi tarayıcı belleğine kaydeder. Sakladığı bu bilgiyi daha sonradan kullanacağı HTTP isteklerinde kullanacaktır.

1. İstemci kendi uygulaması üzerinden(çoğu durumda bir tarayıcıdan) www.fatihkabakci.com adresini tuşlar.

2. İstemci uygulaması sunucuya bir HTTP GET/POST isteği gönderir.

3. Sunucu istemciye HTTP 200 OK içerisinde Set-cookie başlığını gönderir.

4. İstemci aldığı bu cookie bilgisini kaydeder. Bundan sonra kullanıcı ilgili web sunucusuna yapacağı her istekte, sakladığı cookie bilgisini Cookie başlığında sunucuya gönderir. Sunucu artık aldığı cookie sayesinde kullanıcıyı hakkında bilgiye sahiptir.

Cookie' lerin istemci tarafında saklanmasından ötürü, sunucular açısından bellek tasarrufu konusunda avantaj sağlar. Ancak sadece text(metinsel) datalar taşıyabilmesi, bir takım güvenlik zaafiyetlerinin olması, cookie' lerin dezavantajları arasındadır. Büyük hacimli verilerin taşınmasıda performans sorunları ortaya çıkarabilmektedir. Çünkü her defasında bu veri HTTP başlıklarında taşınmaktadır. Cookie' lerin bir diğer dezavantajı da kullanıcıların isteklerine göre kapatılıp açılabilmesidir. Tüm taracıyılar kullanıcılarına cookie' leri kapatma opsiyonu tanır. Böyle durumlarda sunucu tarafında yazacağınız cookie uygulamalarına dikkat etmeniz gerekebilir.

Aşağıda basit bir login işleminde kullanılan temel adımlar gösterilmektedir.


Kullanıcı giriş panelinde gerekli bilgileri tuşlar.


Kullanıcının HTTP isteğine karşılık sunucu HTTP cevabında Set-cookie header' ı görülür.


Kullanıcı daha sonra GoServlet için HTTP istek başlığında Cookie header' ını gönderdiği görülür.


Kullanıcı GoServlet HTTP 200 OK ile başarıyla giriş yapar.

MemberCommentDate:
guest
Açıklayıcı bir yazı olmuş. Elinize sağlık.
my girlfriend cheated on me with her ex click my girlfriend cheated on me twice
cvs weekly sales damske.com cvs promo
acyclovir 800mg levofloxacin 750mg fluconazole pill
diflucan 150mg link dutasteride pill
abilify cogentin open abilify
4/25/2015 2:42:00 PM

Name:


Question/Comment
   Please verify the image




The Topics in Computer Science

Search this site for





 

Software & Algorithms

icon

In mathematics and computer science, an algorithm is a step-by-step procedure for calculations. Algorithms are used for calculation, data processing, and automated reasoning.

Programming Languages

icon

A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. It can be used to create programs to control the behavior of a machine. Java,C, C++,C#

Database

icon

A database is an organized collection of data. The data are typically organized to model aspects of reality in a way that supports processes requiring information.

Hardware

icon

Computer hardware is the collection of physical elements that constitutes a computer system. Computer hardware refers to the physical parts or components of a computer such as the monitor, memory, cpu.

Web Technologies

icon

Web development is a broad term for the work involved in developing a web site for the Internet or an intranet. Html,Css,JavaScript,ASP.Net,PHP are one of the most popular technologies. J2EE,Spring Boot, Servlet, JSP,JSF, ASP

Mobile Technologies

icon

Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones. J2ME

Network

icon

A computer network or data network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices pass data to each other along data connections.

Operating Systems

icon

An operating system is software that manages computer hardware and software resources and provides common services for computer programs. The OS is an essential component of the system software in a computer system. Linux,Windows

Computer Science

icon

Computer science is the scientific and practical approach to computation and its applications.A computer scientist specializes in the theory of computation and the design of computational systems.