Ero istunnon ja evästeiden välillä
Keskeinen ero istunnon ja evästeen välillä
- Istunnot ovat palvelinpuolen tiedostoja, jotka sisältävät käyttäjätietoja, kun taas evästeet ovat asiakaspuolen tiedostoja, jotka sisältävät käyttäjätietoja.
- Istunto on riippuvainen evästeestä, mutta eväste ei ole riippuvainen istunnosta.
- Istunto päättyy, kun käyttäjä sulkee selaimensa, kun taas eväste vanhenee sille asettamasi käyttöiän mukaan.
- Voit tallentaa istuntoon niin paljon dataa kuin haluat, mutta evästeen tallennustila on vain 4 kt.
- Kaikki istunnon rekisteröidyt tiedot voidaan tuhota Session_destroy()-komennolla. Ei kuitenkaan ole sellaista komentoa kuin unsetcookie() tietojen poistamiseksi evästeestä.
Tässä olen analysoinut eroa Istunto ja eväste ja arvioi kattavasti niiden edut ja haitat.
Mikä on istunto?
Istunto on globaali muuttuja, joka on tallennettu palvelimelle. Jokaiselle istunnolle on määritetty yksilöllinen tunnus, jota käytetään tallennettujen arvojen noutamiseen. Aina kun istunto luodaan, yksilöllisen istuntotunnuksen sisältävä eväste tallennetaan käyttäjän tietokoneelle ja palautetaan jokaisen pyynnön yhteydessä palvelimelle. Jos asiakasselain ei tue evästeitä, yksilöllinen istuntotunnus näkyy URL-osoitteessa. Istunnot pystyvät tallentamaan suhteellisen suuria tietomääriä evästeisiin verrattuna.
Istuntoarvot poistetaan automaattisesti, kun selain suljetaan. Jos haluat tallentaa arvot pysyvästi, sinun tulee tallentaa ne tietokanta.
Aivan kuten $_COOKIE-taulukkomuuttuja, istunnon muuttujat tallennetaan $_SESSION-taulukkomuuttujaan. Evästeiden tapaan istunto on aloitettava ennen HTML-tageja.
Miksi ja milloin minun pitäisi käyttää istuntoja?
Istuntoja käytetään arvojen siirtämiseen sivulta toiselle. Ne tallentavat tärkeät tiedot, kuten käyttäjätunnuksen, turvallisemmin palvelimelle, jossa pahantahtoiset käyttäjät eivät voi peukaloida niitä.
Sitä käytetään myös, kun haluat vaihtoehdon evästeille selaimissa, jotka eivät tue evästeitä, globaalien muuttujien tallentamiseen tehokkaalla ja turvallisella tavalla. Se on parempi kuin välittää ne URL-osoitteessa tai kehitettäessä sovellusta, kuten ostoskoria, joka tallentaa tilapäisesti tietoja, joiden kapasiteetti on suurempi kuin 4 kt.
Istunnon luominen PHP:llä
Istunnon aloittamiseksi sinun on käynnistettävä PHP:n session_start-funktio ja sen jälkeen tallennettava arvosi $_SESSION superglobaaliin taulukkoon.
Harkitse skenaariota, jossa haluat seurata sivukäyntien tiheyttä. Istunnon käyttäminen on tehokas tapa tähän tarkoitukseen.
Seuraava esimerkki havainnollistaa arvojen määrittämisen ja käyttämisen istunnoissa:
<?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']; ?>lähtö:
You are visitor number 1
Session edut
Tässä on istunnon edut minun näkökulmastani.
- Parantaa käyttäjien vuorovaikutusta ylläpitämällä jatkuvaa dialogitilaa useissa pyynnöissä.
- Vähentää palvelimen kuormitusta tallentamalla tilapäisesti käyttäjätietoja.
- Parantaa turvallisuutta valvomalla tietojen altistumista rajoitetun ajan.
- Mahdollistaa räätälöidyt kokemukset käyttäjien käyttäytymisen ja mieltymysten perusteella.
- Helpottaa monimutkaisia tapahtumia seuraamalla useita vaiheita.
- Lisää verkkosivuston suorituskykyä minimoimalla uudelleentodennuksen tarpeen.
- Tukee skaalautuvuutta hallitsemalla käyttäjäistuntoja tehokkaasti hajautetuissa järjestelmissä.
Sessionin haitat
Kokemukseni mukaan nämä ovat istuntojen käytön haittoja.
- Lisää tietomurtojen riskiä, jos istunnon tiedot siepataan.
- Kuluttaa palvelimen muistia, mikä saattaa heikentää järjestelmän yleistä suorituskykyä.
- Se voi johtaa epäjohdonmukaisiin käyttökokemuksiin, jos sitä hoidetaan väärin.
- Vaatii lisäpalvelinresursseja istuntojen ylläpitoon ja valvontaan.
- Istunnon vanheneminen voi häiritä käyttäjien toimintaa ja aiheuttaa turhautumista.
- Alttiina istuntojen kaappauksille ja kiinnityshyökkäyksille.
- Se voi vaikeuttaa tietosuojamääräysten noudattamista jatkuvan tietojen tallentamisen vuoksi.
Mikä on eväste?
Eväste on pieni tiedosto, jonka enimmäiskoko on 4 kt ja jonka verkkopalvelin tallentaa asiakastietokoneelle. Kun eväste on asetettu, kaikki seuraavat sivupyynnöt palauttavat evästeen nimen ja arvon. Eväste voidaan lukea vain siitä verkkotunnuksesta, josta se on annettu. Esimerkiksi verkkotunnusta www.guru99.com käyttävää evästejoukkoa ei voida lukea verkkotunnuksesta karrier.guru99.com. Suurin osa Internetin verkkosivustoista näyttää elementtejä muista verkkotunnuksista, kuten mainonnasta. Näitä elementtejä palvelevat verkkotunnukset voivat myös asettaa omia evästeitään. Näitä kutsutaan kolmannen osapuolen evästeiksi. Käyttäjän luoma eväste voi olla näkyvissä vain hänelle. Muut käyttäjät eivät näe sen arvoa. Suurin osa Web-selaimet on vaihtoehtoja poistaa evästeet, kolmannen osapuolen evästeet tai molemmat.
Miksi ja milloin minun pitäisi käyttää evästeitä?
HTTP on tilaton protokolla; evästeiden avulla voimme seurata sovelluksen tilaa käyttämällä pieniä tiedostoja, jotka on tallennettu käyttäjän tietokoneelle. Polku, johon evästeet tallennetaan, riippuu selaimesta. Internet Explorer tallentaa ne yleensä Temporal Internet Files -kansioon.
Käyttäjäkokemuksen personointi: Tämä saavutetaan antamalla käyttäjien valita mieltymyksensä. Seuraavat sivupyynnöt räätälöidään evästeissä asetettujen asetusten perusteella. Käyttäjän vierailemien sivujen seuranta.
Evästeiden luominen PHP:llä
Perehdytään nyt evästeiden luomiseen tarvittavaan perussyntaksiin.
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
- PHP:ssä setcookie toiminto käytetään evästeen luomiseen. "cookie_name" edustaa evästeen tunnistetta, joka on välttämätön palvelimelle, kun sen on noudettava evästeen arvo $_COOKIE-taulukosta. Tämä nimi on pakollinen.
- "cookie_value" ilmaisee evästeen sisällön ja on myös pakollinen.
- Parametri "[expiry_time]" on valinnainen, ja se voidaan asettaa sanelemaan evästeen käyttöikää, kuten asettaa sen vanhentumaan 1 tunnin kuluttua. Tämä tehdään lisäämällä tai vähentämällä sekunteja PHP time()-funktiosta, esimerkiksi time() + 3600 asettaaksesi 1 tunnin.
- "[cookie_path]" on toinen valinnainen parametri, joka määrittää palvelinpolun, jossa eväste on käytettävissä. Vinoviivan "/" käyttö osoittaa, että eväste on käytettävissä koko verkkotunnuksessa, kun taas alihakemistojen määrittäminen rajoittaa pääsyä näihin aliverkkotunnuksiin.
- Parametri "[domain]", joka on myös valinnainen, määrittää, missä evästettä voidaan käyttää. Esimerkiksi sen asettaminen
www.cookiedomain.com
tekee sen saatavilla koko verkkotunnuksessa, kun taaswww.sub.cookiedomain.com
rajoittaa sen kyseiseen aliverkkotunnukseen ja sen aliverkkotunnuksiin. Muista, että aliverkkotunnuksella voi olla myös omia aliverkkotunnuksia, kunhan verkkotunnuksen kokonaispituus ei ylitä 253 merkkiä. - Parametri "[secure]" on valinnainen, ja sen oletusasetus on epätosi. Se määrittää, lähetetäänkö eväste HTTPS:n (jos tosi) vai HTTP:n (jos epätosi) kautta.
- "[Httponly]"-asetus on myös valinnainen. Kun asetus on tosi, evästettä ei voi käyttää asiakaspuolen komentosarjakielillä, kuten JavaKäsikirjoitus .
Huomautus: PHP setcookie -funktio on kutsuttava ennen kuin HTML-tunnisteet tulostetaan.
Tarkastellaanpa käytännön esimerkkiä evästeistä.
Tässä tapauksessa kehitämme yksinkertaisen ohjelman, joka tallentaa käyttäjänimen evästeeseen, joka vanhenee kymmenen sekunnin kuluttua.
Seuraava "cookies.php"-koodi näyttää kuinka tämä toteutetaan.
<?php setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>lähtö:
the cookie has been set for 60 seconds
Evästeiden edut
Kokemukseni mukaan tässä on hyödyt keksit:
- Korostaa yllätyksen elementtiä makujen löytämisessä.
- Tarjoaa minimalistista estetiikkaa, joka on ihanteellinen moderniin brändäykseen.
- Vähentää pakkauksen sotkua ja kiinnittää huomion tuotteeseen.
- Poistaa harhaa, joka perustuu ainesosien mieltymyksiin tai tuotemerkin käsitykseen.
- Kannustaa maistelemaan ilman ennakkokäsityksiä, mikä johtaa puolueettomaan palautteeseen.
- Mahdollisesti alentaa pakkausten tulostuskustannuksia.
- Yksinkertaistaa sääntelyn noudattamista markkinoilla, joilla on vähemmän tiukkoja merkintälakeja.
Evästeen haitat
Näkemäni perusteella nämä ovat evästeiden haitat.
- Asiakkaat eivät voi tunnistaa allergeeneja tai ruokavaliorajoituksia.
- Siitä puuttuu ravitsemustietoa, mikä on tärkeää terveystietoisille kuluttajille.
- Menettää mahdollisuuden korostaa ainutlaatuisia tai ensiluokkaisia ainesosia.
- Se voi aiheuttaa sekaannusta vastaavien tuotteiden hyllyillä.
- Estää brändin tunnettuuden ja uskollisuuden rakentamisen.
- Vähentää kuluttajien tietoista päätöksentekoa.
- Tämä voi johtaa oikeudellisiin ongelmiin alueilla, joilla on tiukat merkintälait.
Istunto vs eväste: ero niiden välillä
Tässä ovat tärkeät erot istunnon ja evästeen välillä, jotka olen havainnut käytännössä:
Istunnot ovat palvelinpuolen tiedostoja, jotka sisältävät käyttäjätietoja |
Evästeet ovat asiakaspuolen tiedostoja, jotka sisältävät käyttäjätietoja |
Istunto päättyy, kun käyttäjä sulkee selaimensa |
Eväste päättyy sen käyttöiän mukaan |
In PHP, ennen $_SESSION käyttöä sinun on kirjoitettava session_start(); Samoin muille kielille |
Sinun ei tarvitse käynnistää evästettä, koska se tallennetaan paikalliselle koneellesi |
Istunnon aikana voit tallentaa niin paljon dataa kuin haluat. Ainoa raja, jonka voit saavuttaa, on muistin enimmäismäärä, jonka skripti voi kuluttaa kerralla, joka on oletuksena 128 Mt |
Virallinen evästeen enimmäiskoko on 4 kt |
Istunto riippuu evästeestä |
Eväste ei ole riippuvainen istunnosta |
Session_destroy() käytetään tuhoamaan kaikki rekisteröidyt tiedot tai poistamaan jotkin asetukset |
Ei ole funktiota nimeltä unsetcookie() |
Yhteenveto
Suosittelen istuntojen käyttöä, kun tietoturva- ja kapasiteettivaatimukset ylittävät evästeiden tarjoaman tason. Evästeet ovat kuitenkin lyömättömiä käytön helppouden ja kevyen, jatkuvan käyttäjän tilan seurannan toteuttamisessa.