Bagikan melalui


Cookie HTTP

Cookie HTTP menyediakan server dengan mekanisme untuk menyimpan dan mengambil informasi status pada sistem aplikasi klien. Mekanisme ini memungkinkan aplikasi berbasis web kemampuan untuk menyimpan informasi tentang item yang dipilih, preferensi pengguna, informasi pendaftaran, dan informasi lain yang dapat diambil nanti.

Ada dua header, Set-Cookie dan Cookie, yang terkait dengan cookie. Header Set-Cookie dikirim oleh server sebagai respons terhadap permintaan HTTP, yang digunakan untuk membuat cookie pada sistem pengguna. Header Cookie disertakan oleh aplikasi klien dengan permintaan HTTP yang dikirim ke server, jika ada cookie yang memiliki domain dan jalur yang cocok.

Header respons Set-Cookie menggunakan format berikut:

Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]

Satu atau beberapa urutan string (dipisahkan oleh titik koma) yang mengikuti nilai nama=pola harus disertakan dalam header respons Set-Cookie. Server dapat menggunakan urutan string ini untuk menyimpan data pada sistem klien.

Tanggal kedaluwarsa diatur dengan menggunakan format kedaluwarsa=tanggal, di mana tanggal adalah tanggal kedaluwarsa di Greenwich Mean Time (GMT). Jika tanggal kedaluwarsa tidak ditetapkan, cookie akan kedaluwarsa setelah sesi Internet berakhir. Jika tidak, cookie disimpan dalam cache hingga tanggal kedaluwarsa. Tanggal harus menggunakan format berikut:

HARI, DD-MMM-YYYY HH:MM:SS GMT

DAY

Hari dalam seminggu (Sun, Mon, Tue, Wed, Thu, Fri, Sat).

DD

Hari dalam sebulan (seperti 01 untuk hari pertama dalam sebulan).

MMM

Singkatan tiga huruf untuk bulan tersebut (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Okt, Nov, Dec).

YYYY

Tahun ini.

HH

Nilai jam dalam waktu militer (22 adalah 10:00 P.M., misalnya).

MM

Nilai menit.

SS

Nilai kedua.

Menentukan nama domain, menggunakan domain pola=domain_name, bersifat opsional untuk cookie persisten dan digunakan untuk menunjukkan akhir domain yang cookienya valid. Cookie sesi yang menentukan domain ditolak. Jika nama domain yang ditentukan berakhir cocok dengan permintaan, cookie mencoba mencocokkan jalur untuk menentukan apakah cookie harus dikirim. Misalnya, jika akhiran nama domain adalah .microsoft.com, permintaan untuk home.microsoft.com dan support.microsoft.com akan diperiksa untuk melihat apakah pola yang ditentukan cocok dengan permintaan. Nama domain harus memiliki setidaknya dua atau tiga periode di dalamnya untuk mencegah cookie diatur untuk akhiran nama domain yang banyak digunakan, seperti .com, .edu, dan co.jp. Nama domain yang diizinkan akan mirip dengan .microsoft.com, .someschool.edu, dan .someserver.co.jp. Hanya host dalam domain yang ditentukan yang dapat mengatur cookie untuk domain.

Mengatur jalur, menggunakan jalur pola=some_path, bersifat opsional dan dapat digunakan untuk menentukan subset URL yang cookienya valid. Jika jalur ditentukan, cookie dianggap valid untuk setiap permintaan yang cocok dengan jalur tersebut. Misalnya, jika jalur yang ditentukan adalah /example, permintaan dengan jalur /examplecode dan /example/code.htm akan cocok. Jika tidak ada jalur yang ditentukan, jalur diasumsikan sebagai jalur sumber daya yang terkait dengan header Set-Cookie.

Cookie juga dapat ditandai sebagai aman, yang menentukan bahwa cookie hanya dapat dikirim ke server https.

Akhirnya, cookie dapat ditandai sebagai HttpOnly (atribut tidak peka huruf besar/kecil), untuk menunjukkan bahwa cookie tidak dapat ditulis dan tidak boleh diungkapkan ke aplikasi klien, karena alasan keamanan. Dalam Windows Internet, ini berarti bahwa cookie tidak dapat diambil melalui fungsi InternetGetCookie .

Header Cookie disertakan dengan permintaan HTTP apa pun yang memiliki cookie yang domain dan jalurnya cocok dengan permintaan. Header Cookie memiliki format berikut:

Cookie: <name>=<value> [;<name>=<value>]...

Satu atau beberapa urutan string, menggunakan nilai nama=format, berisi informasi yang diatur dalam cookie.

Membuat Cookie

Ada tiga metode untuk menghasilkan cookie untuk Microsoft Internet Explorer: menggunakan Microsoft JScript, menggunakan fungsi WinINet, dan menggunakan skrip CGI. Semua metode perlu mengatur informasi yang disertakan dalam header Set-Cookie.

Dengan menggunakan model objek HTML Dinamis (DHTML), cookie dapat diatur dengan memanggil properti cookie objek dokumen, seperti yang ditunjukkan dalam contoh berikut.

<SCRIPT language="JavaScript">
<!--
    document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>

Cookie dapat dibuat oleh aplikasi menggunakan fungsi InternetSetCookie. Untuk informasi selengkapnya, lihat Mengatur Cookie.

Cookie dihasilkan dengan menyertakan header Set-Cookie sebagai bagian dari skrip CGI yang disertakan dalam respons HTTP terhadap permintaan.

Contoh berikut adalah skrip CGI yang menyertakan header Set-Cookie menggunakan Perl.

print "Set-Cookie:Test=test_value; 
      expires=Sat, 01-Jan-2000 00:00:00 GMT;
      path=/;"

Catatan

WinINet tidak mendukung implementasi server. Selain itu, tidak boleh digunakan dari layanan. Untuk implementasi atau layanan server, gunakan Microsoft Windows HTTP Services (WinHTTP).