Apa itu Cookie ?
Cookies merupakan data file yang ditulis ke dalam hard disk
komputer oleh web server yang digunakan untuk mengidentifikasikan diri user
pada situs tersebut sehingga sewaktu user kembali mengunjugi situs tersebut,
situs itu akan dapat mengenalinya. Jadi dapat dikatakan bahwa cookies merupakan
semacam ID card user saat koneksi pada situs. Tiap-tiap website pada umumnya
mengeluarkan / membuat cookies sesuai karakterikstiknya. Ada web yang dapat
menyapa user tiap kali mengunjungi situs tersebut selayaknya teman lama karena
menggunakan cookies.
Kenapa
Cookie dibuat ?
Mungkin kamu bertanya-tanya kenapa juga cookie dibuat?
Alasannya karena cookie nyaman dan efektif saat digunakan. Jika website dengan
pengunjung ribuan atau jutaan tidak menggunakan cookie, mereka akan menyimpan
data interaksi yang dilakukan pengunjung ke server dan akan di proses disana.
Tentu ini akan memakan waktu yang lama, sedangkan jika menggunakan cookie maka
akan lebih cepat.
Apa kegunaan cookie ?
1. Membantu web site untuk “mengingat” siapa kita dan
mengatur preferences yang sesuai sehingga apabila user kembali mengunjungi web
site tersebut akan langsung dikenali.
2. 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.
3. Memungkinkan web site untuk menelusuri pola web
surfing user dan mengetahui situs favorit yang sering dikunjunginya.
Berbahayakan cookie ?
Cookie tidaklah berbahaya, cookie hanyalah metode yang
digunakan untuk mempermudah seorang pengguna internet. Selain itu cookie juga
tidak dapat terinfeksi oleh malware atau virus. Lalu apa yang perlu kamu
takutkan pada cookie? Cerita terburuk untuk ini adalah ketika seseorang mencuri
cookie kamu untuk membuat data palsu atau mendapatkan email dan password. Namun
kamu jangan terlalu kawathir karena keamaan cookie tergantung dari website yang
kamu kunjungi dan browser yang kamu gunakan. Karena biasanya cookie telah
dienkripsi agar terlindungi dari serangan hacker.
Bagaimana menghapus cookie ?
Ini tidaklah masalah, menghapus cookie adalah salah
satu hal terbaik untuk melindungi privasi kamu dari serangan hacker. Kalaupun
kamu menghapus cookie, kamu hanya perlu login lagi ke akun Facebook yang
biasanya sudah terbuka situs-situs lain yang biasanya langsung masuk ke akun
kamu. Pada setiap browser cookie bisa dihapus dan letaknya berbeda-beda
tergantung browser yang kamu gunakan. Berikut caranya:
·
Internet
Explorer:
Setting>Safety>Delete Browsing History
·
Firefox: Tools>Clear Recent History
·
Chrome: Setting>Tools>Clear browsing data
·
Opera: Opera>Setting>Delete Private Data
Kamu juga
bisa menggunakan software seperti CCleaner, BleachBit, Eraser atau Privacy Agent.
Batasan-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.
Sekarang langsung saja kita
buat codingnya. Seperti biasa buat sebuah new Java Web project dengan menggunakan
netbeans kalian. Lalu ubah file index.jsp menjadi seperti ini :
<%@page contentType="text/html"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<a
href="doCheckCookie.do">Cek browser apakah mendukung cookie atau
tidak</a> <br>
<a
href="doCreateCookie.do">Buat cookie</a> <br>
<a
href="doSeeCookie.do">Lihat cookie</a> <br>
</body>
<%
String
cek = (String) request.getAttribute("cek");
String
hsl = "Browser ini tidak mendukung cookie";
if(cek!=null)
{
Cookie[] cekCookie = request.getCookies();
if(cekCookie!=null)
{
Cookie c1;
for(int i=0; i< cekCookie.length; i++)
{
c1 = cekCookie[i];
if(c1.getName().equals("test") &&
c1.getValue().equals("testing cookie"))
{
hsl="Browser ini mendukung cookie";
break;
}
}
}
%>
<script
type="text/javascript">
alert('<%=hsl%>');
</script>
<%
}
%>
<%
String
msg = (String) request.getAttribute("msg");
if(msg!=null)
{
%>
<script
type="text/javascript">
alert('<%=msg%>');
</script>
<%
}
%>
</html>
Pada halaman index.jsp terdiri dari 3 menu,
menu pertama yaitu Cek browser apakah mendukung cookie atau tidak berfungsi
untuk mengecek apakah browser yang digunakan mendukung cookies atau tidak. Cara
mengeceknya sebenarnya sederhana, saat user mengklik menu tersebut maka di
servlet yang dituju akan membuat sebuah cookie. Lalu saat di-redirect ke halaman index.jsp,
disini dilakukan pengambilan cookie. Jika tidak ada cookie yang dibuat di
servlet tersebut maka sudah dipastikan browser tidak mendukung cookie.
Tampilannya jika menu pertama diklik adalah seperti ini Sekarang buatlah sebuah
class CheckCookie tersebut
package com.maniakjava.action;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CheckCookie extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
Cookie cookie = new Cookie("test","testing cookie");
response.addCookie(cookie);
request.setAttribute("cek", "cek");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
}
Sekarang
coba jalankan menu ketiga terlebih dahulu,
Cookie test adalah cookie yang sudah kita buat di menu pertama, sedangkan cookie kedua dan ketiga merupakan cookie yang dibuat secara otomatis oleh server. Code untuk class menu ketiga adalah seperti ini
Cookie test adalah cookie yang sudah kita buat di menu pertama, sedangkan cookie kedua dan ketiga merupakan cookie yang dibuat secara otomatis oleh server. Code untuk class menu ketiga adalah seperti ini
package com.maniakjava.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SeeCookie extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
Cookie[] allCookie = request.getCookies();
Cookie[] cookie = new Cookie[allCookie.length];
if(allCookie==null)
{
request.setAttribute("msg", "Tidak ada cookie yang tercipta");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
else
{
for(int i=0; i<allCookie.length; i++)
{
cookie[i]= allCookie[i];
out.print("Nama Cookie : " + cookie[i].getName());
out.print("<br>Nilai Cookie : " + cookie[i].getValue());
out.println("<br><br>");
}
}
}
}
Berikutnya code class untuk menu nomor 2, yaitu buat cookie adalah seperti
ini
package com.maniakjava.action;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CreateCookie extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
Cookie cookie1 = new Cookie("site","maniakjava");
Cookie cookie2 = new Cookie("name","secret");
cookie1.setMaxAge(60*60); //valid selama 1 jam
cookie2.setMaxAge(60*60); //valid selama 1 jam
response.addCookie(cookie1);
response.addCookie(cookie2);
request.setAttribute("msg", "Cookie sudah dibuat");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
}
Sekarang coba jalankan menu kedua, lalu jalankan kembali menu ketiga. Maka
2 cookie dengan nama site dan name akan muncul. Lalu untuk cookie site dan
name, saya set masa berlakunya hanya selama 1 jam. Jadi coba saja 1 jam
kemudian kalian langsung jalankan menu ketiga, maka cookie site dan name tidak
akan muncul lagi.
0 komentar:
Posting Komentar