Pages

Rabu, 21 Desember 2011

Cookie tidak berbahaya

Apa sih cookie itu?
Non Teknis
Saya tidak bisa menemukan contoh bagus di dunia nyata yang bisa menjelaskan cookie dengan tepat. Tapi mari kita coba yang ini: Seorang dokter akan memberikan pada Anda sebuah kartu yang akan diisi mengenai keadaan Anda ketika pertama kali Anda datang berobat kepadanya dan menyerahkan kartu itu ke Anda. Setiap kali Anda datang (yang mungkin masih berhubungan dengan penyakit yang sama) Anda menyerahkan kartu itu dan dokter itu bisa mengetahui perkembangan Anda, dan bisa mengetahui Anda datang karena apa (untuk penyakit yang lalu, atau karena penyakit baru). Jika dokter itu adalah web server dan pasien adalah klien (browser) maka kartu tersebut adalah cookie yang akan kita bahas saat ini.
Sebagian besar dokter (yang pasiennya tidak terlalu banyak) akan ingat dengan masing-masing pasiennya dan juga penyakitnya, tapi webserver tidak ingat sama sekali mengenai sebuah klien, kira-kira sama dengan dokter yang punya banyak sekali pasien sampai tidak ingat bahwa pasien ini sedang berobat untuk kedua kalinya sehubungan dengan penyakitnya yang kemarin. Sifat webserver (HTTP server) yang tidak mempedulikan (mengingat-ingat) permintaan ini disebut stateless.


Teknis

Sebelum dapat memahami cookie Anda harus tahu tentang HTTP. HTTP merupakan suatu protokol stateless yang digunakan untuk world wide web (WWW). Istilah World wide web tentunya Anda sudah tahu. Ada dua istilah yang perlu dijelaskan: protokol dan stateless. Secara singkat dapat dikatakan Protokol merupakan suatu kesepakatan mengenai bagaimana komunikasi akan dilakukan [Tanenbaum, 1992]. Sedangkan stateless artinya protokol ini tidak mempertahankan informasi antara satu permintaan dengan pemintaan lainnya. Server HTTP akan melayani suatu permintaan tanpa tergantung permintaan sebelumnya atau permintaan sesudahnya. Spesifikasi HTTP/1.0 bisa dilihat di RFC 1945 dan HTTP/1.1 bisa dilihat di RFC 2068.
Dengan sifatnya yang stateless, akan sangat sulit untuk membuat suatu aplikasi dengan protokol HTTP yang perlu menangani sebuah sesi (misalnya belanja online). Dalam konteks ini suatu sesi adalah serangkaian permintaan yang berupa suatu kesatuan, misalnya mulai dari Anda login, memilih barang, melakukan pembayaran, sampai logout. Meskipun saat itu ada orang lain yang sama-sama login dan sama-sama memilih barang, barang yang Anda pilih tidak akan bercampur dengan orang itu karena Anda dan orang itu memiliki sesi yang berbeda.
Cookie merupakan salah satu cara untuk menciptakan suatu stateful session dengan HTTP, selain cookie masih ada cara yang lain, namun cara ini yang dinilai paling nyaman dan menjadi standar untuk saat ini. Secara lengkap cara kerja cookie bisa dilihat di RFC 2109.

Wujudnya cookie itu seperti apa?

Wujudnya seperti yang biasanya disuguhkan waktu Natal atau Lebaran. Tapi itu cookie yang lain. Cookie yang ini adalah berupa informasi dalam bentuk teks yang dipertukarkan oleh client dan server (yang membuat cookie ini adalah server). Di dalam cookie ini ada beberapa informasi, yaitu nama server yang memberikan, path cookie, isi cookienya dan tanggal kadaluarsanya. Ketika menerima sebuah cookie, cookie itu akan disimpan oleh browser didalam cookie jar (toples kue) biasanya ini berupa file teks. Ketika browser mengunjungi suatu site yang namanya ada di cookie jar, pathnya juga sama maka ketika meminta halaman untuk site itu isi cookie juga dikirim.
Jika Anda masih penasaran seperti apa sih tampang sebuah cookie. Ini saya berikan contoh cookie dari browser lynx yang saya dapat dari google:

.google.com  FALSE  /  FALSE  2147368447  PREF  ID=490beaea066057e2:TM=959406003
Setiap kali saya mengunjungi google.com cookie itu akan dikirim ke sana.

Apa yang bisa dilakukan cookie?

Cookie dipakai untuk menyimpan informasi di sisi client oleh suatu server. Jadi yang menulis isi cookie adalah webserver, dan klien yang menyimpannya. Untuk setiap server, besarnya suatu cookie dibatasi dan jumlahnya juga, jadi sebuah server tidak akan bisa memberikan cookie dalam jumlah yang banyak atau dalam ukuran yang besar untuk memenuhi harddisk Anda.
Cookie bisa dipakai untuk menyimpan informasi login Anda untuk digunakan pada halaman-halaman berikutnya, cookie juga bisa digunakan untuk menyimpan informasi tambahan agar Anda tidak perlu login setiap kali mengunjungi suatu site.
Cookie juga bisa digunakan untuk memantau halaman mana saja yang sudah Anda kunjungi dalam suatu site. Ini yang biasanya dibesar-besarkan oleh media, kata mereka : Anda bisa dilacak dengan cookie. RFC 2109 sendiri sudah menyinggung hal ini:

0 komentar:

Posting Komentar