کوکی ها همیشه برایم مبحث جالبی بوده است. مطمئنا برای شما نیز جالب خواهد بود. از آنجائی که HTTP یک پروتکل stateless یا بدون حالت می باشد. یعنی اگر شما درخواستی را به سرویس دهنده بفرستید و شخص دیگری نیز همین در خواست را به سرویس دهنده ارسال کند، سرویس دهنده توان تشخیص اینکه کدام درخواست مربوط به چه کسی می باشد را ندارد و همه آنها را مانند هم پردازش می کند.
کوکی ها، نشست ها و … برای کمک به تشخیص درخواست ها بوجود آمده اند. برای پردازش کوکی ها به دو تابع نیاز داریم. یکی برای نوشتن کوکی و دیگری برای خواندن کوکی. در زیر این دو تابع را مشاهده می نمائید:
function Set_Cookie(name, value, expires, path, domain, secure ) {
var today = new Date(); today.setTime( today.getTime() );
if ( expires ) { expires = expires * 1000 * 60; }
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";
expires=" + expires_date.toGMTString() : "" ) + ( ( path ) ? ";
path=" + path : "" ) + ( ( domain ) ? ";
domain=" + domain : "" ) + ( ( secure ) ? ";
secure" : "" ); return true;
}
function Get_Cookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) { return null; }
if ( start == -1 ) return null; var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
هر کوکی از ۲ قسمت اصلی تشکیل می شود. (نام، مقدار)
شرح متغیر های استفاده شده در توابع بالا در زیر آمده است:
(more…)