Minggu, 26 Juli 2015

Cookies

Pengertian


Cookies adalah struktur data kecil yang digunakan oleh web server untuk mengirim data ke browser client. Data ini disimpan oleh browser, dan dalam beberapa kondisi browser mengembalikan data tersebut kembali ke web server.

Cookies atau bisa disebut sebagai HTTP cookiesweb cookies, atau browser cookies adalah data/informasi yang diciptakan oleh suatu website untuk disimpan di web browser, ketika user sedang menjelajahi website tersebut. Cookies yang telah disimpan pada browser bisa diambil untuk memberitahu website tentang aktivitas user pada waktu sebelumnya. Cookies diciptakan supaya website bisa mengetahui aktivitas yang telah dilakukan si user pada waktu sebelumnya. Aktifitas ini misalnya mengklik suatu tombol, login, atau   halaman mana yang telah dibuka oleh user pada bulan bahkan tahun lalu.

Cookies juga bisa saja menyimpan Informasi diri Anda seperti nama, alamat e-mail, alamat rumah atau kantor, nomor telepon yang dapat digunakan untuk mengidentifikasi atau mengontak Anda. Ini hanya bisa terjadi apabila Anda memberikan Informasi didalam sebuah situs Web.

Fungsi Cookies 

  • Membantu website untuk "mengingat" siapa kita dan mengatur preferences yang sesuai sehingga apabila user kembali mengunjungi website tersebut akan langsung dikenali.
  • Menghilangkan kebutuhan untuk me-register ulang di web site tersebut saat mengakses lagi tersebut (site tertentu saja), cookies membantu proses login user ke dalam web server tersebut.
  • Memungkinkan website untuk menelusuri pola web surfing user dan mengetahui situs favorit yang sering dikunjunginya.

Jenis Cookies

  • Non persistent (session) cookies. Suatu cookies yang akan hilang sewaktu user menutup browser dan biasanya digunakan pada  'shopping carts' di toko belanja online untuk menelusuri item-item yang dibeli,
  • Persistent cookies. Diatur oleh situs-situs portal, banner / media iklan situs dan lainnya yang ingin tahu ketika user kembali mengunjungi site mereka. (misal dengan cara memberikan opsi ”Remember Me” saat login). File file ini tersimpan di hardisk user.

Kedua tipe cookies ini menyimpan informasi mengenai URL atau domain name dari situs yang dikunjungi user dan beberapa kode yang mengindikasikan halaman apa saja yang sudah dikunjungi. Cookies dapat berisi informasi pribadi user, seperti nama dan alamat email, Akan tetapi dapat juga user memberikan informasi ke website tersebut melalui proses registrasi. Dengan kata lain, cookies tidak akan dapat "mencuri" nama dan alamat email kecuali diberikan oleh user. Namun demikian, ada kode tertentu (malicious code) yang dibuat misalnya dengan ActiveX control, yang dapat mengambil informasi dari komputer tanpa sepengetahuan user.

Batasan Cookies

  • Suatu client hanya dapat menampung 300 cookie.
  • Suatu server hanya bisa mengirim 20 cookie ke suatu client.
  • Sebuah cookie memiliki ukuran maksimal 4 Kb, sehingga total space hard disk yang digunakan cookie hanya mencapai 1,2 Mb.
  • Sebuah cookie hanya dapat dibaca dan diubah oleh server dari domain dimana cookie tersebut berasal.
  • Sebuah cookie hanya dapat berisi data berupa teks dan tidak bisa berupa data biner.

Tujuan Pembuatan Cookies
Digunakan untuk mengidentifikasi user, seperti:

  • Penggunaan ‘Keep me logged in’ pada saat login ke website facebook.com maka kketika kita buka website itu lagi, kita langsung masuk ke halaman website tersebut tanpa melakukan login
  • Penggunaan pada website e-commerce yaitu saat user membeli barang dan menambahnya ke keranjang belanja, lalu dia lanjutkan belanja dan menambahkan lagi barang yang mau dibeli, nah bagaimana aplikasi e-commerce tersebut tahu bahwa barang ini akan ditambahkan ke keranjang belanja user siapa? Disinilah gunanya Cookie yaitu aplikasi e-commerce tadi melihat cookie dari header yang dikirimkan

Cara Pembuatan Cookies


Sebuah coookie dapat diciptakan dengan menggunakan kelas coookie (terdapat pada paket javax.servlet.http). 
                Cookie nama_objek = new Cookie (“nama_cookie”, “nilai_cookie”);      

Keterangan:
nama_cookie berupa string yang menyatakan nama cookie dan
nilai_cookie menyatakan nilai yang akan disimpan pada nama cookie.

Nama cookie tidak boleh mengandung karakter-karakter berikut :Spasi-putih [] () = , “ / ? @ : ;

Selanjutnya, objek cookie yang terbentuk perlu dikirimkan melalui objek implicitresponse,
dengan memangggil metodeaddCoookie().
response.addCookie(nama_objek);

Jadi untuk membuat Cookie maka kita harus membuat objeknya terlebih dahulu, lalu baru kita tambahkan objek Cookie tersebut ke HTTP response.

  • mengambil nilai cookie

Untuk membaca cookie yang terdapat pada klien, JSP menyediakan metode bernama getCookies() yang dipanggil melalui variable bernama request. Metode ini memberikan nilai balik berupa array berkelas Cookie. Anda bisa memperoleh semua cookie dengan cara seperti berikut :
                Cookie nama_array[] = request.getCookies();

Keterangan:
Request.getCookies(); kode ini digunakan untuk mengambil semua Cookies dari header HTTP Request.

nama_array adalah variable array yang berkelas Cookie. Selanjutnya variable ini diisi dengan seluruh cookie yang dihasilkan oleh request.getCookies().

Untuk mendapatkan sebuah cookie dengan indeks i, anda bisa menggunakan pernyataan seperti berikut ini :
                Cookie = nama_array[i];

Variabel cookie perlu dideklarasikan terlebih dahulu :
                Cookie cookie;
Dengan menggunakan metode getName() untuk memperoleh nama cookie dan menggunakan metode getValue() untuk memperoleh isi cookie.

  • Mengatur Usia Cookie

Untuk menentukan waktu kadaluwarsa atau usia cookie bias dilakukan dengan menggunakan metode setMaxAge(). 
                nama_objek.setMaxAge(int usia);

Parameter usia dalam satuan detik menyatakan berapa lama cookie bersangkutan bertahan sebelum masa kadaluwarsa.

Contoh mengatur waktu kadaluwarsa 1 jam dimulai sekarang dengan cara memberikan perintah sebagai berikut :
               nama_objek.setMaxAge(3600);

  • Menghapus Cookie

Cookie dapat dihapus dengan memanggil metode setMaxAge() dan dengan menyertakan argument berupa angka nol.
                Cookie nama_objek = new Cookie(“nama_cookie”,””);
                nama_objek.setMaxAge(0);
                response.addCookie(cookie);

  • Mengganti nilai Cookie

Untuk mengganti isi suati cookie, anda cukup membuat cookie dengan nama yang sama tetapi dengan isi yang baru.
                Cookie nama_objek = new Cookie(“nama_cookie”, “new value”);
                response.addCookie(nama_objek);


Contoh Cookie

  • BuatCookie.jsp
<html>
<head>
<title>Cookie</title>
</head>
<body>
<%
Cookie cNama1 = new Cookie("nama1","Latifah Hannum" );
Cookie cNama2 = new Cookie("nama2","solah" );
Cookie cNama3 = new Cookie("nama3","Erika Prima Dewi" );
Cookie cNama4 = new Cookie("nama4","tetti" );
Cookie cNama5 = new Cookie("nama5","asus" );
response.addCookie(cNama1);
response.addCookie(cNama2);
response.addCookie(cNama3);
response.addCookie(cNama4);
response.addCookie(cNama5);
out.println("Lima buah Cookie telah dibuat");
%>
</body>
</html>

disini kita membuat cookie. dimana ada 5 cookie dengan nama : cNama1, cNama2, cNama3, cNama4, cNama5. fungsi addCookiee untuk menambah cookie

  • Bacacookie.jsp

<html>
<head>
<title>Membaca Cookie</title>
</head>
<body>
<%
Cookie dafCookie[] = request.getCookies();
if (dafCookie != null) {
Cookie cookie;
out.println("<TABLE BORDER=\"1\">");
out.println("<TR><TH>Cookie</TH><TH>Isi </TH></TR>");
for (int i=0; i < dafCookie.length; i++) {
cookie = dafCookie[i];
out.println("<TR><TD>" + cookie.getName() + "</TD><TD>" + cookie.getValue() + "</TD></TR>");
}
out.println("</TABLE>");
}
%>
</body>

  • UsiaCookie.jsp

<html>
<head>
<title>Usia Cookie</title>
</head>
<body>
<%
Cookie cNama = new Cookie("nama","Latifah Hannum");
cNama.setMaxAge(3600);
response.addCookie(cNama);
out.println("Coookie dengan usia 1 jam telah dibentuk");
%>
</body>
</html>

kita dapat mengatur usia cookie untuk cookie tertentu dengan cara setMaxAge

  • HapusCookie.jsp

<%
Cookie cookie = new Cookie("nama1","");
cookie.setMaxAge(0);
response.addCookie(cookie);
%>
<html>
<head>
<title>Menghapus Cookie</title>
</head>
<body>
Cookie nama1 telah dihapus <BR>
melihat semua isi cookie <BR>
klik <A HREF="bacacookie.jsp">Disini</A>
</body>
</html>

disini kita menghapus cookie nama1 sehingga cNama1 tidak ada lagi ditabel cookie

  • UbahCookie.jsp

<%
Cookie cNama1 = new Cookie("namabaru", "Viona Sarah");
response.addCookie(cNama1);
out.println("Coookie nama baru telah diubah");
%>
<html>
<head>
<title>Ubah Coookie</title>
</head>
<body>
</body>


cookie cNama1 yang telah dihapus tidak ada lagi didalam cookie. Jika kita ingin menampilkan cookie cNama1 dengan value yang berbeda nama kita dapat membuat seperti coding diatas 

terlihat bahwa cookie cNama2 - cNama5 masih ada, yang berbeda dari pertama kita melihat BacaCookie.jsp ialah terdapat namabaru,nama dan nama1 sudah tidak ada lagi. nama1 telah dihapus sehingga tidak ada lagi. namabaru merupakan nama1 yang telah dirubah sedangkan nama merupakan cookie yang berbeda dengan cNama1 tetapi valuenya sama. Pada nama kita mengatur usia cookie


note :
session, cookies dan input type digunakan untuk menyembunyikan informasi. perbedaannya :
1. cookie : informasi disimpan di browser (client) 
2. session : informasi disimpan di server

persamaan cookie dan session :
1. butuh id (identitas)
2. tidak perlu login berulang

tetapi kekurangan cookie dan sesion : tidak ada privasi

Tidak ada komentar:

Posting Komentar