بررسی تخصصی کوکی و سشن در PHP

بررسی تخصصی کوکی و سشن در PHP

نوشته شده توسط: تیم فنی نیک آموز
۱۸ آبان ۱۴۰۱
زمان مطالعه: 10 دقیقه
۴.۳
(۳)

اگر با برنامه‌نویسی php آشنایی دارید و یا زیاد در فضای اینترنت جستجو می‌کنید، حتما تا الان با مفاهیمی مانند کوکی و سشن برخورد کرده‌اید. در برنامه‌نویسی php اطلاعات بازدیدکنندگان را برای استفاده در سایت می‌توان در سشن ها و یا کوکی‌ها ذخیره کرد؛ یعنی کوکی و سشن در php یک وظیفه مشابه را به عهده دارند.

اما باید بدانید که بین session و cookie تفاوت‌هایی نیز وجود دارد که موجب شده از هر کدام از آن‌ها در موقعیت‌های به‌خصوصی استفاده شود. در این مقاله ابتدا مفاهیم کوکی و سشن را معرفی می‌کنیم و سپس درباره تفاوت‌های آن‌ها حرف می‌زنیم.

 

آشنایی با مفاهیم کوکی و سشن در PHP

پیش از اینکه در خصوص تفاوت‌های session و cookie در php صحبت کنیم، لازم است کمی با مفاهیم این دو واژه بیشتر آشنا شویم. از کوکی‌ها و سشن‌ها برای ذخیره‌سازی اطلاعات کاربران سایت استفاده می‌شود. این دو قابلیت می‌توانند مشخصات و اطلاعات کاربرانی را که برای بازدید به وب‌سایت‌ها مراجعه کرده‌اند، ذخیره‌سازی کنند و در اختیار شما قرار دهند.

اما هرکدام از این دو مفهوم دارای تعاریف مجزا از یکدیگر بوده و قابلیت‌های متفاوتی دارند که آن‌ها را برای استفاده در موقعیت‌های مختلفی مناسب می‌کند. اجازه دهید در ابتدا شما را به‌صورت کامل با تعاریف کوکی و سشن در php آشنا کنیم.

• کوکی‌ها (Cookie)

کوکی‌ها در واقع یک فایل متنی کوچک هستند که در رایانه کاربر ذخیره می‌شوند. آن‌ها دارای اندازه‌ای نهایتاً ۴ کیلوبایتی بوده و همچنین به‌عنوان کوکی HTTP، کوکی وب یا کوکی اینترنت نیز ‌شناخته می‌شوند. هر زمان که کاربر برای اولین‌بار از یک وب‌سایت بازدید می‌کند، سایت بسته‌هایی از داده‌ها را در قالب یک کوکی به رایانه کاربر ارسال خواهد کرد. در واقع کوکی‌ها به کمک وب‌سایت‌ها می‌آیند تا هنگام بازدید کاربران، سابقه مرور، اطلاعات سبد خرید و غیره را ذخیره کنند.

کوکی و سشن در php می‌توانند مزایای زیادی را با خود به همراه داشته باشند. برای مثال کوکی‌ها تمام فعالیت‌های کاربران را هنگام باز کردن یک وب‌سایت، پیگیری می‌کنند. داده‌های ذخیره شده توسط کوکی‌ها از نوع رشته‌ای خواهد بود؛ اما باید به این نکته اشاره شود که این داده‌ها در کوکی‌ها امن نبوده و به‌راحتی قابل‌دسترسی هستند. البته تنظیمات کوکی در مرورگرها این اجازه را به کاربران می‌دهد تا هر زمان که بخواهند کوکی‌ها را غیرفعال یا مجدداً فعال کنند.

• سشن ها (Session)

برای درک بهتر تفاوت بین کوکی و سشن در php نیاز است با مفهوم سشن نیز آشنا شوید. یک سشن برای ذخیره موقت اطلاعات بر روی سرور استفاده می‌شود. سشن یک کاربر زمانی آغاز به کار می‌کند که او به یک شبکه به‌خصوص وارد می‌شود. هرگاه که کاربر از برنامه خارج شده یا سیستم خود را خاموش ‌کند، سشن او به پایان خواهد رسید.

در زمان گشت‌وگذار در بین برنامه‌های کاربردی اینترنت، وب سرور نمی‌تواند کاربر را شناسایی کند، زیرا وضعیت او توسط پروتکل Http حفظ نخواهد شد. ازاین‌رو داده‌هایی که کاربر در صفحه اصلی یا هر صفحه دیگری ارائه می‌کند به صفحات بعدی منتقل نمی‌شود. برای این که از چنین محدودیتی جلوگیری شود، از سشن‌ها استفاده می‌کنند.

داده‌های کاربر را از هر نوعی که باشند، می‌توان در متغیرهای سشن ذخیره کرد. داده‌های کاربران توسط متغیرهای سشن به‌صورت باینری و یا رمزگذاری شده در سرور ذخیره می‌شوند تا اطلاعات آن‌ها محفوظ باقی بماند. سشن‌ها برای هر کاربر متفاوت هستند و تعدادی از آن‌ها را می‌توان در یک برنامه واحد استفاده کرد؛ زیرا هیچ محدودیتی وجود ندارد. به کمک یک سشن، کاربر شناسایی خواهد شد، زیرا هر کاربر دارای یک شماره منحصربه‌فرد است که به‌عنوان یک کوکی، فیلد فرم یا URL در سرور ذخیره می‌شود.

تفاوت بین کوکی و سشن در PHP

حال که به‌خوبی با مفاهیم session و cookie آشنایی پیدا کرده‌اید، شاید شما هم متوجه تفاوت بین این دو مفهوم شده باشید. درهرصورت ما در این قسمت به بزرگ‌ترین تفاوت‌های بین کوکی‌ها و سشن‌ها اشاره می‌کنیم. اول ‌از همه باید بدانید که کوکی‌ها فایل‌های سمت سرویس‌گیرنده هستند که حاوی اطلاعات کاربران خواهند بود. این در حالی است که سشن¬ها فایل‌های سمت سرور هستند که اطلاعات کاربر را در اختیار دارند.

یکی دیگر از تفاوت‌های در این است که کوکی‌ها هیچ‌گونه وابستگی به سشن ندارند و می‌توانند بدون آن‌ها نیز اجرا شوند. درحالی‌که سشن¬ها برای اجرایی‌شدن به کوکی‌ها نیازمند هستند. تفاوت بعدی اینکه کوکی‌ها بسته به طول عمری که در زمان ساخت برای آن‌ها مشخص شده است، باقی می‌مانند؛ اما یک سشن تنها زمانی به پایان می‌رسد که کاربرد مرورگر خودش را ببندد.
از دیگر تفاوت‌های بین کوکی و سشن در php می‌توان به سایز و اندازه آن‌ها اشاره کرد. یک کوکی حداکثر دارای اندازه ۴ کیلوبایتی است، درحالی‌که یک سشن می‌تواند به‌اندازه دلخواه داده ذخیره کند. کوکی‌ها تابعی به نام unsetcookie() ندارند؛ درحالی‌که در پیاده‌سازی سشن ها می‌توانید از دستور Session_destroy() برای ازبین‌بردن تمام داده‌های ثبت شده یا برای تنظیم برخی از آن‌ها استفاده کنید.

 

 

کار با کوکی و سشن در PHP

حال که به‌صورت کامل با مفاهیم کوکی و سشن در php و تفاوت‌هایشان آشنا شدید، زمان آن رسیده است که درباره نحوه کار آن‌ها در زبان برنامه‌نویسی php نیز اطلاعاتی را در اختیار شما قرار دهیم. در ادامه این بخش برای آشنایی با مقدمات کار با ما همراه باشید.

• سشن

برای استفاده از سشن‌ها در php در مرحله اول باید از طریق روش GET یا POST درخواست کلاینت به سرور ارسال شود. در مرحله بعد از آن sessionID روی سرور ایجاد شده و در پایگاه‌داده ذخیره می‌شود و با یک کوکی به‌عنوان پاسخ، به سمت مشتری بازگردانده می‌شود. پس از آن که کوکی با sessionID ذخیره شده در مرورگر به سرور بازگردانده شد، سرور این شناسه را با sessionID ذخیره شده مطابقت داده و پاسخ را به HTTP200 ارسال می‌کند.

• کوکی

کار با کوکی‌ها در php بسیار ساده است. برای ایجاد یک کوکی در php باید از تابع setcookie() استفاده کنیم و آن را قبل از تگ <html> قرار دهیم. سینتکس این تابع به شکل «setcookie (نام، مقدار، انقضا، مسیر، دامنه، امن، فقط http)» خواهد بود. البته باید اشاره کرد که در این سینتکس تنها آرگومان نام موردنیاز بوده و مابقی آرگومان‌ها اختیاری هستند.

 

نتیجه‌گیری

کوکی و سشن در php می‌توانند اطلاعات بازدیدکنندگان در زمان استفاده از سایت را ذخیره کنند. با اینکه هر دو این مفاهیم کارکرد یکسانی دارند، اما تفاوت‌هایی نیز بین آن‌ها می‌توان یافت. تفاوت اصلی بین کوکی‌ها و سشن ها در این است که اطلاعات ذخیره شده در یک کوکی در مرورگر بازدیدکننده ذخیره می‌شوند و اطلاعات ذخیره شده در یک سشن، در سمت سرور ذخیره خواهند شد. همین تفاوت‌ها می‌توانند به‌خوبی تعیین کنند که هرکدام از آن‌ها برای چه هدفی مناسب خواهند بود.

چه رتبه ای می‌دهید؟

میانگین ۴.۳ / ۵. از مجموع ۳

اولین نفر باش

title sign
دانلود مقاله
بررسی تخصصی کوکی و سشن در PHP
فرمت PDF
صفحه
حجم مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
237 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

ثبت نام رایگان در همایش Tehran .NET Conf 2023 ، همین الان کلیک کنید
ثبت نام رایگان..
close-image