Erinevus seansi ja küpsiste vahel

Peamised erinevused seansi ja küpsise vahel

  • Seansid on serveripoolsed failid, mis sisaldavad kasutajateavet, samas kui küpsised on kliendipoolsed failid, mis sisaldavad kasutajateavet.
  • Seanss sõltub küpsisest, kuid küpsis ei sõltu seansist.
  • Seanss lõpeb, kui kasutaja sulgeb oma brauseri, samal ajal kui küpsis aegub olenevalt teie määratud kasutusajast.
  • Saate seansi jooksul salvestada nii palju andmeid, kui soovite, kuid küpsise andmesalvestusruum on vaid 4 KB.
  • Kõik seansi registreeritud andmed saab hävitada käsu Session_destroy() abil. Siiski pole küpsisest andmete eemaldamiseks sellist käsku nagu unsetcookie().  

Erinevus seansi ja küpsiste vahel
Erinevus seansi ja küpsiste vahel

Siin olen analüüsinud erinevust Seanss ja küpsis ning hindab põhjalikult nende plusse ja miinuseid.

Mis on seanss?

Seanss on serverisse salvestatud globaalne muutuja. Igale seansile määratakse kordumatu ID, mida kasutatakse salvestatud väärtuste toomiseks. Iga kord, kui seanss luuakse, salvestatakse kasutaja arvutisse unikaalset seansi ID-d sisaldav küpsis, mis saadetakse iga päringuga serverile tagasi. Kui kliendibrauser küpsiseid ei toeta, kuvatakse URL-is unikaalne seansi ID. Seansid suudavad küpsistega võrreldes salvestada suhteliselt suuri andmemahtusid.

Seansi väärtused kustutatakse automaatselt, kui brauser suletakse. Kui soovite väärtused püsivalt salvestada, peaksite need salvestama andmebaas.

Nii nagu massiivi muutuja $_COOKIE, salvestatakse seansi muutujad massiivi muutujasse $_SESSION. Sarnaselt küpsistega peab seanss algama enne HTML-i silte.

Miks ja millal peaksin seansse kasutama?

Seansse kasutatakse väärtuste edastamiseks ühelt lehelt teisele. Nad salvestavad olulise teabe, näiteks kasutaja ID, turvalisemalt serverisse, kus pahatahtlikud kasutajad ei saa seda rikkuda.

Seda kasutatakse ka siis, kui soovite küpsistele alternatiivi küpsiseid mittetoetavates brauserites, et salvestada globaalseid muutujaid tõhusamal ja turvalisemal viisil. See on parem kui edastada need URL-is või arendada rakendust, näiteks ostukorvi, mis salvestab ajutiselt teavet mahuga üle 4 KB.

Seansi loomine PHP-ga

Seansi alustamiseks peate käivitama PHP-s funktsiooni session_start ja seejärel salvestama oma väärtused superglobaalsesse massiivi $_SESSION.

Mõelge stsenaariumile, mille puhul soovite jälgida lehekülastuste sagedust. Seansi kasutamine on sel eesmärgil tõhus meetod.

Järgmine näide näitab, kuidas seanssides väärtusi luua ja neile juurde pääseda.

<?php

session_start(); //start the PHP_session function 

if(isset($_SESSION['page_count']))
{
     $_SESSION['page_count'] += 1;
}
else
{
     $_SESSION['page_count'] = 1;
}
 echo 'You are visitor number ' . $_SESSION['page_count'];

?>
Väljund:
You are visitor number 1

Seansi eelised

Siin on seansi eelised minu vaatenurgast.

  • Parandab kasutaja interaktsiooni, säilitades pideva dialoogi oleku mitme päringu puhul.
  • Vähendab serveri koormust, salvestades ajutiselt kasutajaandmeid.
  • Parandab turvalisust piiratud aja jooksul kontrollitud andmetega kokkupuute kaudu.
  • Võimaldab kasutaja käitumise ja eelistuste põhjal isikupärastatud kogemusi.
  • Hõlbustab keerulisi tehinguid, jälgides mitut etappi.
  • Suurendab veebisaidi jõudlust, minimeerides vajaduse uuesti autentida.
  • Toetab skaleeritavust, haldades hajutatud süsteemides tõhusalt kasutajaseansse.

Seansi miinused

Minu kogemuse kohaselt on need seansside kasutamise puudused.

  • Seansiandmete pealtkuulamisel suureneb andmetega seotud rikkumiste oht.
  • Tarbib serveri mälu, mis võib vähendada süsteemi üldist jõudlust.
  • Ebaõige haldamise korral võib see põhjustada ebajärjekindlaid kasutajakogemusi.
  • Seansside säilitamiseks ja jälgimiseks on vaja täiendavaid serveriressursse.
  • Seansi aegumine võib kasutaja tegevust häirida, põhjustades frustratsiooni.
  • Seansi kaaperdamise ja fikseerimise rünnakute suhtes haavatav.
  • Pideva andmete säilitamise tõttu võib see raskendada privaatsuseeskirjade järgimist.

Mis on küpsis?

Küpsis on väike fail maksimaalselt 4KB, mille veebiserver salvestab klientarvutisse. Kui küpsis on seadistatud, tagastavad kõik järgnevad lehepäringud küpsise nime ja väärtuse. Küpsist saab lugeda ainult sellest domeenist, kust see on välja antud. Näiteks domeeni www.guru99.com kasutavat küpsisekomplekti ei saa lugeda domeenist karjera.guru99.com. Enamik Internetis olevaid veebisaite kuvab elemente muudest domeenidest, näiteks reklaamidest. Neid elemente teenindavad domeenid võivad samuti seada oma küpsiseid. Neid nimetatakse kolmanda osapoole küpsisteks. Kasutaja loodud küpsis on nähtav ainult talle. Teised kasutajad ei näe selle väärtust. Enamik veebibrauserid küpsiste, kolmanda osapoole küpsiste või mõlema keelamiseks.

Miks ja millal peaksin küpsiseid kasutama?

HTTP on olekuta protokoll; küpsised võimaldavad meil jälgida rakenduse olekut kasutaja arvutisse salvestatud väikeste failide abil. Küpsiste salvestamise tee sõltub brauserist. Internet Explorer salvestab need tavaliselt kausta Temporal Internet Files.

Kasutajakogemuse isikupärastamine: see saavutatakse, võimaldades kasutajatel valida oma eelistused. Järgnevad lehepäringud on isikupärastatud küpsistes seatud eelistuste alusel. Kasutaja külastatud lehtede jälgimine.

Küpsiste loomine PHP-ga

Nüüd süveneme küpsiste loomise põhisüntaksisse.

<?php

setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);

?>
  • PHP-s setcookie funktsioon kasutatakse küpsise genereerimiseks. "Cookie_name" tähistab küpsise identifikaatorit, mis on serveri jaoks hädavajalik, kui tal on vaja tuua küpsise väärtus massiivist $_COOKIE. See nimi on kohustuslik.
  • "Cookie_value" tähistab küpsise sisu ja on samuti kohustuslik.
  • Parameeter „[expiry_time]” on valikuline ja selle saab seadistada küpsise kasutusiga määrama, näiteks määrates selle aeguma 1 tunni pärast. Selleks lisatakse või lahutatakse PHP funktsioonist time() sekundeid, näiteks time() + 3600, et määrata 1 tund.
  • „[cookie_path]” on veel üks valikuline parameeter, mis määrab serveri tee, kus küpsisele on juurdepääs. Kaldkriipsu „/” kasutamine näitab, et küpsis on saadaval kogu domeenis, samas kui alamkataloogide määramine piirab juurdepääsu nendele alamdomeenidele.
  • Parameeter „[domeen]”, mis on samuti valikuline, määrab, kus küpsisele pääseb juurde. Näiteks selle seadistamine www.cookiedomain.com teeb selle kättesaadavaks kogu domeenis, samas www.sub.cookiedomain.com piirab selle selle alamdomeeni ja selle alamdomeenidega. Pidage meeles, et alamdomeenil võivad olla ka oma alamdomeenid, kui domeeni kogupikkus ei ületa 253 tähemärki.
  • Parameeter „[turvaline]” on valikuline, selle vaikeseade on vale. See määrab, kas küpsis tuleb edastada HTTPS-i (kui on tõene) või HTTP-i (kui see on väär) kaudu.
  • Seade „[Httponly]” on samuti valikuline. Kui see on seatud väärtusele Tõene, ei pääse küpsisele juurde kliendipoolsed skriptikeeled, näiteks JavaScript .

Märge: PHP setcookie funktsioon tuleb enne HTML-i siltide väljastamist välja kutsuda.

Vaatleme praktilist näidet küpsiste kohta.

Sel juhul töötame välja lihtsa programmi, mis salvestab kasutajanime küpsisesse, mis aegub kümne sekundi pärast.

Järgmine "cookies.php" kood näitab, kuidas seda rakendada.

<?php
     setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds
     echo 'the cookie has been set for 60 seconds';
?>
Väljund:
the cookie has been set for 60 seconds

Küpsiste eelised

Minu kogemuse põhjal on siin toodud eelised küpsised:

  • Suurendab üllatuse elementi maitse avastamisel.
  • Pakub minimalistlikku esteetikat, mis sobib ideaalselt kaasaegseks kaubamärgiks.
  • Vähendab pakendi segadust, koondades tähelepanu tootele.
  • Kõrvaldab koostisosade eelistustel või kaubamärgi tajumisel põhineva eelarvamuse.
  • Soodustab maitsmist ilma eelarvamusteta, mis toob kaasa erapooletu tagasiside.
  • Potentsiaalselt alandab pakendamise trükikulusid.
  • Lihtsustab regulatiivset vastavust leebemate märgistamisseadustega turgudel.

Küpsiste puudused

Minu nähtu põhjal on need küpsiste miinused.

  • Kliendid ei suuda allergeene ega toitumispiiranguid tuvastada.
  • Puudub toitumisalane teave, mis on terviseteadlikele tarbijatele oluline.
  • Jätab kasutamata võimaluse esile tõsta ainulaadseid või esmaklassilisi koostisosi.
  • See võib riiulitel sarnaste toodete seas segadust tekitada.
  • Hoiab ära kaubamärgi tuntuse ja lojaalsuse suurendamise.
  • Vähendab tarbijate teadlike otsuste tegemist.
  • See võib kaasa tuua juriidilisi probleeme piirkondades, kus kehtivad ranged märgistamisseadused.

Seanss vs küpsis: erinevus nende vahel

Siin on olulised erinevused seansi ja küpsise vahel, mida olen oma praktikas täheldanud.

Seanss vs küpsis
Seanss vs küpsis

istung
küpsis

Seansid on serveripoolsed failid, mis sisaldavad kasutajateavet

Küpsised on kliendipoolsed failid, mis sisaldavad kasutajateavet

Seanss lõpeb, kui kasutaja sulgeb brauseri

Küpsis lõpeb olenevalt selle kasutusajast

In PHP, enne $_SESSION kasutamist tuleb kirjutada session_start(); Samamoodi ka teiste keelte puhul

Te ei pea küpsist käivitama, kuna see salvestatakse teie kohalikku masinasse

Seansi jooksul saate salvestada nii palju andmeid, kui soovite. Ainus piirang, mida saate saavutada, on maksimaalne mälu, mida skript võib korraga tarbida, mis on vaikimisi 128 MB

Küpsiste ametlik maksimaalne suurus on 4 KB

Seanss sõltub küpsisest

Küpsis ei sõltu seansist

Session_destroy() kasutatakse kõigi registreeritud andmete hävitamiseks või mõne tühistamiseks

Funktsiooni nimega unsetcookie() pole

Järeldus

Soovitan kasutada seansse, kui andmeturbe- ja mahunõuded ületavad küpsiste pakutavat. Siiski on küpsised ületamatud kasutusmugavuse ja kerge ja püsiva kasutaja oleku jälgimise jaoks.