Apa itu Cookie HTTP?
Dalam teknologi Internet, cookie adalah file teks yang disimpan server Web di mesin klien selama sesi Hypertext Transfer Protocol (HTTP). Cookie HTTP digunakan untuk mencatat informasi tentang pola penggunaan klien, termasuk tanggal dan waktu klien mengunjungi situs, halaman mana yang diakses, preferensi browser web, dan sebagainya.

Cookies menggunakan sistem penyimpanan klien untuk menyimpan informasi ini daripada menyimpannya di server. Karena sejumlah besar klien mungkin mengunjungi situs hanya sekali, tidaklah efisien untuk mendedikasikan sebagian besar penyimpanan server untuk melacak klien anonim yang mungkin tidak akan pernah kembali. Lebih lanjut, preferensi klien (seperti alamat IP ) dapat berubah antar sesi, terutama untuk klien dial-up, sehingga server tidak memiliki cara untuk mengenali klien jika informasi cookie disimpan di server.
Cookie Http, oleh karena itu, menyediakan cara bagi server untuk mengenali bahwa klien sebelumnya mengunjungi situs dan mencatat apa yang klien lakukan selama kunjungan sebelumnya, memungkinkan server untuk menyesuaikan sesi HTTP untuk memenuhi kebutuhan klien (atau kebutuhan klien). pengiklan situs!).
Cookies adalah file teks yang tidak berbahaya dan tidak dapat digunakan untuk menularkan virus ke klien. Cookies hanyalah pemegang informasi yang pasif; mereka tidak dapat digunakan untuk «mengambil» informasi apapun dari komputer Anda (seperti alamat email Anda). Namun demikian, sebagian besar browser Web, seperti Chrome atau Microsoft Internet Explorer , memiliki pengaturan opsional yang memungkinkan pengguna menolak cookie.
Namun, menolak cookie dapat mengakibatkan pengalaman penjelajahan yang lebih buruk di situs yang bergantung pada cookie. Anda juga dapat menghapus cookie apa pun di komputer yang menjalankan Microsoft Windows dengan menghapus konten subdirektori cookie di dalam direktori profil pengguna di hard drive Anda. (Namun, jangan hapus direktori itu sendiri.)
Cookie Tetap
Alih-alih kedaluwarsa saat browser web ditutup seperti yang dilakukan cookie sesi, cookie tetap akan kedaluwarsa pada tanggal tertentu atau setelah jangka waktu tertentu. Ini berarti bahwa, selama masa pakai cookie (yang bisa sepanjang atau sesingkat yang diinginkan pembuatnya), informasinya akan dikirim ke server setiap kali pengguna mengunjungi situs webnya, atau setiap kali pengguna melihat-lihat. sumber daya yang dimiliki situs web tersebut dari situs web lain (seperti iklan).
Untuk alasan ini, cookie persisten terkadang disebut sebagai cookie pelacakan karena dapat digunakan oleh pengiklan untuk mencatat informasi tentang kebiasaan penjelajahan web pengguna dalam jangka waktu yang lama. Namun, mereka juga digunakan untuk alasan “sah” (seperti membuat pengguna tetap masuk ke akun mereka di situs web, untuk menghindari memasukkan kembali kredensial masuk pada setiap kunjungan).
Cookie Sesi
Cookie sesi, juga dikenal sebagai cookie dalam memori, cookie sementara, atau cookie non-persisten, hanya ada di memori sementara saat pengguna menavigasi situs web. Browser web biasanya menghapus cookie sesi saat pengguna menutup browser. Tidak seperti cookie lainnya, cookie sesi tidak memiliki tanggal kedaluwarsa yang ditetapkan untuknya, begitulah cara browser tahu untuk memperlakukannya sebagai cookie sesi.
Cookie Aman
Cookie aman hanya dapat dikirim melalui koneksi terenkripsi (yaitu HTTPS). Mereka tidak dapat dikirim melalui koneksi yang tidak terenkripsi (yaitu HTTP). Ini membuat cookie lebih kecil kemungkinannya untuk terkena pencurian cookie melalui penyadapan. Cookie dibuat aman dengan menambahkan bendera Aman ke cookie.
Cookie khusus HTTP
Cookie khusus HTTP tidak dapat diakses oleh API sisi klien, seperti JavaScript. Pembatasan ini menghilangkan ancaman pencurian cookie melalui pembuatan skrip lintas situs (XSS). Namun, cookie tetap rentan terhadap serangan pelacakan lintas situs (XST) dan pemalsuan permintaan lintas situs (XSRF). Cookie diberikan karakteristik ini dengan menambahkan bendera HttpOnly ke cookie.
Cookie Situs yang Sama
Pada tahun 2016, Google Chrome versi 51 memperkenalkan jenis cookie baru, cookie situs yang sama, yang hanya dapat dikirim dalam permintaan yang berasal dari asal yang sama dengan domain target. Pembatasan ini mengurangi serangan seperti pemalsuan permintaan lintas situs (XSRF). Cookie diberikan karakteristik ini dengan menyetel bendera SameSite ke Strict atau Lax.
Bagaimana menerapkan Cookie HTTP
Cookie adalah bagian data yang berubah-ubah, biasanya dipilih dan dikirim pertama kali oleh server web, dan disimpan di komputer klien oleh browser web. Browser kemudian mengirimkannya kembali ke server dengan setiap permintaan, memperkenalkan status (memori peristiwa sebelumnya) ke dalam transaksi HTTP tanpa kewarganegaraan. Tanpa cookie, setiap pengambilan halaman web atau komponen halaman web akan menjadi peristiwa yang terisolasi, sebagian besar tidak terkait dengan semua tampilan halaman lain yang dibuat oleh pengguna di situs web. Meskipun cookie biasanya disetel oleh server web, cookie juga dapat disetel oleh klien menggunakan bahasa skrip seperti JavaScript (kecuali bendera HttpOnly cookie disetel, dalam hal ini cookie tidak dapat dimodifikasi oleh bahasa skrip).
Mengatur cookie
Cookie disetel menggunakan Set-Cookie header HTTP yang dikirim dalam respons HTTP dari server web. Header ini menginstruksikan browser web untuk menyimpan cookie dan mengirimkannya kembali dalam permintaan mendatang ke server (browser akan mengabaikan header ini jika tidak mendukung cookie atau menonaktifkan cookie).
Sebagai contoh, browser mengirimkan permintaan pertamanya untuk beranda www.networkencyclopedia.com situs web:
DAPATKAN /index.html HTTP /1.1
Host: www.networkencyclopedia.com
...
Server merespons dengan dua Set-Cookie header:
HTTP /1.0 200 Oke
Jenis konten: teks / html
Set-Cookie: theme = bluesky
Set-Cookie: sessionToken = xyz003; Kedaluwarsa = Rab, 02 Jun 2021 12:15:28 GMT
...
Respons HTTP server berisi konten beranda situs web. Tapi itu juga menginstruksikan browser untuk menyetel dua cookie. Yang pertama, “tema”, dianggap sebagai cookie sesi karena tidak memiliki atribut Expires atau Max-Age. Cookie sesi dimaksudkan untuk dihapus oleh browser saat browser ditutup. Yang kedua, “sessionToken”, dianggap cookie tetap karena mengandung Expires atribut, yang menginstruksikan browser untuk menghapus cookie pada tanggal dan waktu tertentu.
Selanjutnya, browser mengirimkan permintaan lain untuk mengunjungi spec.html halaman di situs web. Permintaan ini berisi Cookie header HTTP, yang berisi dua cookie yang diinstruksikan server untuk disetel oleh server:
GET /spec.html HTTP /1.1
Host: www.networkencyclopedia.com
Cookie: theme = bluesky; sessionToken = xyz003
…
Dengan cara ini, server mengetahui bahwa permintaan ini terkait dengan permintaan sebelumnya. Server akan menjawab dengan mengirimkan halaman yang diminta, mungkin menyertakan lebih banyak Set-Cookie header dalam respons untuk menambahkan cookie baru, mengubah cookie yang ada, atau menghapus cookie.
Membuat Cookie dengan JavaScript
JavaScript dapat membuat, membaca, dan menghapus cookie dengan document.cookie properti tersebut.
Dengan JavaScript, cookie dapat dibuat seperti ini: document.cookie = “username = John Doe”;
Anda juga dapat menambahkan tanggal kedaluwarsa (dalam waktu UTC). Secara default, cookie dihapus saat browser ditutup: document.cookie = “username = John Doe; kedaluwarsa = Kam, 18 Des 2013 12:00:00 UTC ”;
Dengan parameter jalur, Anda dapat memberi tahu browser lokasi cookie tersebut. Secara default, cookie adalah milik halaman saat ini.document.cookie = “username = John Doe; kedaluwarsa = Kam, 18 Des 2013 12:00:00 UTC; jalur = / ”;
Membaca Cookie dengan JavaScrip
Dengan JavaScript, cookie dapat dibaca seperti ini: var x = document.cookie;
document.cookie akan mengembalikan semua cookie dalam satu string seperti: cookie1 = value; cookie2 = nilai; cookie3 = nilai;
Mengubah Cookie dengan JavaScript
Dengan JavaScript, Anda dapat mengubah cookie dengan cara yang sama seperti Anda membuatnya: document.cookie = “username = John Smith; kedaluwarsa = Kam, 18 Des 2013 12:00:00 UTC; jalur = / ”;
Membuat Cookie dengan PHP
Untuk membuat Cookie HTTP dengan PHP Anda harus menggunakan fungsi bawaan setcookie () . Fungsi ini menentukan cookie yang akan dikirim bersama dengan header HTTP lainnya. Seperti tajuk lainnya, cookie harus dikirim sebelum keluaran apa pun dari skrip Anda (ini adalah batasan protokol). Ini mengharuskan Anda melakukan panggilan ke fungsi ini sebelum keluaran apa pun, termasuk tag dan serta spasi kosong apa pun.
Setelah cookie disetel, cookie dapat diakses pada pemuatan halaman berikutnya dengan array $ _COOKIE . Nilai cookie mungkin juga ada di $ _REQUEST .
Untuk lebih memahami Cookies di PHP dan melihat contoh, kunjungi dokumentasi PHP – function setcookie