Session və Cookie arasında fərq nədir?
Müəllif : Zaur Qasımov
Last updated
Müəllif : Zaur Qasımov
Last updated
Sessiya və kukilər istifadəçi məlumatlarını saytın müxtəlif səhifələrində saxlamaq üçün müxtəlif veb-saytlar tərəfindən istifadə olunur. Həm sessiya, həm də kukilər ziyarətçinin müxtəlif məqsədlər üçün təqdim etdiyi məlumatları izlədikləri üçün vacibdir. Onların arasındakı əsas fərq ondan ibarətdir ki, sessiyalar server tərəfində, kukilər isə istifadəçinin brauzerində və ya müştəri tərəfində saxlanılır. Bundan əlavə, hər ikisi arasında müxtəlif digər fərqlər də var.
Bu yazıda biz sessiyaların və kukilərin ətraflı təsvirini və bir-birindən necə fərqləndiyini başa düşəcəyik.
Sessiya veb saytın bir çox səhifələrində istifadə edilmək üçün serverdə məlumatı müvəqqəti saxlamaq üçün istifadə olunur. Bir fəaliyyət üçün istifadə olunan ümumi vaxtdır. İstifadəçi sessiyası müəyyən bir şəbəkə proqramına daxil olduqda başlayır və istifadəçi proqramdan çıxdıqda və ya sistemi dayandırdıqda başa çatır.
Biz internetdə bir proqram üzərində işləyərkən HTTP protokolu state-i saxlamadığı üçün veb-server istifadəçini tanımır. Tətbiqin bir səhifəsində istifadəçinin təqdim etdiyi məlumat (Deyək ki, Ana səhifə) başqa səhifəyə ötürülməyəcək. Bu məhdudiyyəti aradan qaldırmaq üçün sessiyalardan istifadə olunur. Ziyarətçi ilk dəfə vebsayta daxil olduqda sessiya başlayır.
İstifadəçi məlumatı sessiya dəyişənlərində saxlanılır və bu dəyişənlər istənilən növ dəyər və ya Obyektin məlumat tipini saxlaya bilər.
Sessiya dəyərləri ikili formada və ya şifrələnmiş formada saxlandığı üçün çox qorunur və yalnız serverdə şifrəni açmaq olar. İstifadəçi sistemi bağladıqda və ya proqramdan çıxdıqda sessiya dəyərləri avtomatik silinir. Dəyərləri daimi saxlamaq üçün onları verilənlər bazasında saxlamalıyıq.
Hər bir sessiya hər bir istifadəçi üçün unikaldır və proqramda istənilən sayda sessiya istifadə edilə bilər,buna heç bir məhdudiyyət yoxdur. İstifadəçi server daxilində saxlanılan unikal nömrə olan sessionID-in köməyi ilə müəyyən edilir. O, kuki, form sahəsi və ya URL kimi saxlanılır.
Bir sessiyanın işini aşağıdakı diaqramın köməyi ilə başa düşmək olar:
İlk addımda müştəri GET və ya POST metodu ilə serverə müraciət edir.
Sessiya identifikatoru serverdə yaradılır və sessionID-ni verilənlər bazasında saxlayır. Müştəriyə cavab olaraq kuki ilə sessionID qaytarır.
Brauzerdə saxlanılan sessionID ilə kuki serverə geri göndərilir. Server bu identifikatoru saxlanmış sessionID ilə uyğunlaşdırır və HTTP200 cavabını göndərir
Sessiyalar, server üzərində UserID kimi məlumatı daha təhlükəsiz saxlamaq üçün istifadə olunur, burada onu gücləndirmək mümkün deyil.
O, həmçinin məlumatı dəyər şəklində bir veb-səhifədən digərinə ötürə bilər.
Dəyişənləri daha təhlükəsiz şəkildə saxlamaq üçün kukiləri dəstəkləməyən brauzerlər üçün kukilərə alternativ olaraq istifadə edilə bilər.
Kuki istifadəçinin kompüterində saxlanılan kiçik mətn faylıdır. Kukinin maksimum fayl ölçüsü 4KB-dir. O, həmçinin HTTP kuki, veb kuki və ya internet kuki kimi tanınır. İstifadəçi hər hansı bir vebsayta ilk dəfə daxil olduqda, sayt istifadəçinin kompüterinə kuki şəklində məlumat paketləri göndərir.
Kukilər veb-saytlara istifadəçilərin saytlarına daxil olduqda onların baxış tarixçəsini və ya səbət məlumatlarını izləməyə kömək edir.
O, yalnız "String" məlumat növünü saxlayır.
Kukilərdə saxlanılan məlumat təhlükəsiz deyil, çünki bu məlumat hər kəs tərəfindən oxuna bilən müştəri tərəfində mətn formatında saxlanılır.
Tələblərə uyğun olaraq kukiləri aktivləşdirə və ya söndürə bilərik.
İstifadəçi tərəfindən yaradılan kukilər yalnız onlara göstərilir və başqa heç bir istifadəçi həmin kukiləri görə bilməz.
Kukilər HTTP başlığının köməyi ilə server və brauzer arasında yaradılır və paylaşılır.
Kukilərin saxlanma yolu brauzer tərəfindən müəyyən edilir, çünki İnternet Explorer onları adətən Müvəqqəti İnternet Fayl Qovluğunda (Temporal Internet File Folder) saxlayır.
YouTube kanalına girib bəzi mahnıları axtardığımız zaman növbəti dəfə YouTube-a daxil olduğumuz zaman kukilər baxış tarixçəmizi oxuyur və oxşar mahnıları və ya son ifa olunan mahnıları göstərir.
PHP-də kuki yaratmaq üçün biz setcookie() funksiyasından istifadə etməliyik və o,<html>
teqindən əvvəl görünməlidir. Bu funksiyanın sintaksisi aşağıda verilmişdir:
Sintaksis:
Nümunə:
Name: O, kukinin adını müəyyən edir.
Value: O, kukinin dəyərini müəyyən edir.
Expire: O, kuki-nin nə vaxt bitəcəyini müəyyənləşdirir. İstifadə edilmədikdə və ya 0 olaraq təyin olunmazsa, kukilər sessiyanın sonunda silinəcək.
Path: O, kukinin server yolunu müəyyən edir. Əgər "/" olaraq təyin edilibsə, kuki tam domen daxilində əlçatan olacaq.
Domain: O, kukilərin domen adını müəyyən edir. Onu "millisec.org" təyin etsək, o, millisec.org-un bütün subdomenləri üçün əlçatan olacaq.
Secure: O, kukilərin yalnız HTTPS vasitəsilə ötürüldüyünü və ya ötürülməyəcəyini müəyyən edir. Əgər True-dursa, bu o deməkdir ki, kukilər yalnız qorunan əlaqə üçün quraşdırılacaq.
HTTPOnly: TRUE olaraq təyin edilərsə, kukilərə HTTP protokolu vasitəsilə daxil olmaq mümkün olacaq.
HTTP stateless protokoldur,ona görə də heç bir istifadəçi məlumatını saxlamır. Bu məqsədlə biz kukilərdən istifadə edə bilərik. O, bizə istifadəçinin kompüterində məlumatları saxlamağa və proqramların vəziyyətini izləməyə imkan verir.
Sessiyalar istifadəçi məlumatlarını saxlayan server tərəfi fayllardır, kukilər isə yerli kompüterdə istifadəçi məlumatlarını ehtiva edən klient fayllarıdır.
Sessiyalar kukilərdən asılıdır, kukilər isə Sessiyadan asılı deyil.
İstifadəçi brauzeri bağladıqda və ya proqramdan çıxdıqda sessiya başa çatır, kukilərin müddəti isə müəyyən edilmiş vaxtda bitir.
Sessiya istifadəçinin istədiyi qədər məlumat saxlaya bilər, kukilərin isə məhdud ölçüsü 4KB olur
Beləliklə, belə nəticəyə gələ bilərik ki, sessiya istifadəçi məlumatını müvəqqəti olaraq server tərəfində saxlayır, kukilər isə məlumatı istifadəçinin kompüterində müddəti bitənə qədər saxlayır.
Session | Cookie |
---|---|
Sessiya dəyişənləri və onların dəyərlərini serverdəki müvəqqəti kataloqda fayl daxilində saxlayır.
Kukilər istifadəçinin kompüterində mətn faylı kimi saxlanılır.
İstifadəçi proqramdan çıxdıqda və ya veb brauzerini bağladıqda sessiya başa çatır.
Kukilər istifadəçi tərəfindən təyin edilmiş istifadə müddətində bitir.
O, qeyri-məhdud miqdarda məlumat saxlaya bilər.
Yalnız məhdud məlumatları saxlaya bilər.
Sessiyada istədiyimiz qədər məlumat saxlaya bilərik, lakin skriptin eyni vaxtda istifadə edə biləcəyi maksimum yaddaş limiti var və bu 128 MB-dır.
Brauzerin kukilərinin maksimum ölçüsü 4 KB-dir.
Sessiyanı başlamaq üçün session_start() funksiyasını çağırmalıyıq.
Kuki lokal kompüterdə saxlandığı üçün onu işə salmaq üçün funksiyaya çağırmaq lazım deyil.
PHP-də sessiya məlumatlarını təyin etmək üçün $_SESSION qlobal dəyişəni istifadə olunur.
PHP-də kukilərdən məlumat almaq üçün $_COOKIE qlobal dəyişəni istifadə olunur.
PHP-də sessiyada saxlanılan məlumatları məhv etmək və ya silmək üçün session_destroy() funksiyasından, xüsusi dəyişəni ləğv etmək üçün isə unset() funksiyasından istifadə edə bilərik.
Kuki məlumatlarını silmək üçün bitmə tarixi təyin edə bilərik. Həmin vaxt məlumatları avtomatik siləcək. Məlumatları silmək üçün xüsusi bir funksiya yoxdur.
Seanslar kukilərə nisbətən daha təhlükəsizdir, çünki onlar məlumatları şifrələnmiş formada saxlayırlar.
Kukilər təhlükəsiz deyil, çünki məlumatlar mətn faylında saxlanılır və hər hansı bir icazəsiz istifadəçi sistemimizə daxil olarsa, o, məlumatları təhlükəyə ata bilər.