Johdanto HTTP-välimuistiin
Olen varma, että olet huomannut, että kun avaat verkkosivun ensimmäistä kertaa, lataaminen vie jonkin aikaa. Kun avaat sen kuitenkin jonkin ajan kuluttua uudelleen, sivusto latautuu paljon nopeammin. Kuvittele, kuinka hitaasti selaaminen tuntuisi, jos sivuston lataaminen vie sama aika joka kerta. No, tämä kaikki johtuu näppärästä ideasta nimeltä HTTP-välimuisti. Katsotaanpa mitä se on, miten se toimii ja kuinka sitä käytetään Internet-selaamisen nopeuttamiseen.
Mikä on HTTP-välimuisti?
HTTP-välimuisti on idea tallentaa joitain yleisesti tai usein käytettyjä tietoja nopeasti käytettävissä olevaan paikkaan. Tämän avulla on erittäin hyvä mahdollisuus, että kaikkein tarvittaviin tietoihin pääsee paljon nopeammin, koska tietokoneen ei tarvitse päästä liian pitkälle sen saamiseksi.
Verkkoselauksen yhteydessä välimuistiinpitoa pidetään, kun selaimesi, kuten Chrome, tallentaa kopion verkkosivustosta tai verkkosovelluksesta paikalliselle tallennusvälineelle. Kun verkkosivusto on välimuistissa, selaimen ei tarvitse ladata kaikkia tietoja palvelimelta uudelleen, ja selaaminen on paljon nopeampaa.
Esimerkiksi, kun verkkosivuston CSS-tiedosto on ladattu, selaimen ei tarvitse ladata sitä jokaiselle istunnon sivulle. Sama voidaan sanoa monille JavaScript-tiedostoille, kuville (kuten sivuston logo ja sosiaalisen median kuvakkeet) ja jopa joillekin dynaamiselle sisällölle. Välimuisti voidaan ottaa käyttöön välimuistin otsikoilla.
Välimuistin otsikot HTTP-muodossa
HTTP-välimuistissa on kaksi suurta välimuistin otsikkoa, ensimmäistä kutsutaan ”Cache-Control” ja toista ”Expire”. Katsotaanpa molempia:
Cache-Control
Voit pitää välimuistin ohjausta kytkimenä välimuistin kytkemiseksi käyttäjän selaimeen. Kun tämä otsikko on lisätty, se mahdollistaa välimuistin tallentamisen kaikille tuetuille selaimille. Jos tätä otsikkoa ei ole, mikään selain ei pidä verkkosivun sisällön välimuistia, vaikka se tukee välimuistia.
Välimuistiohjaimessa on kahden tyyppisiä tietosuoja-asetuksia, ensimmäinen on julkinen ja toinen yksityinen.
Julkisessa tapauksessa resurssit voidaan välimuistiin millä tahansa välityspalvelimella, kuten Content Delivery Networks (CDN).
Cache-Control-otsikko, jossa on yksityinen vastaus, kertoo selaimelle, että välimuisti tehdään vain yhdelle käyttäjälle, ei mille tahansa välipalvelimelle.
Cache-Control-otsikon arvo ”enimmäisikä” asettaa ajan, jona sisältö välimuistiin tulee. Tämä aika on sekunneissa.
Cache-Control:public, max-age=31536000
vanhenee
Expires-otsikkoa käytetään, kun välimuistin hallinta on läsnä koodissa. Tämä on yksinkertainen HTTP-välimuistin otsikko, joka asettaa päivämäärän, josta välimuistiresursseja pidetään kelpaamattomina. Kun välimuisti on vanhentunut ja käyttäjä lataa verkkosivun, verkkoselain vain pyytää uudestaan kaiken sivun sisällön.
Ehdolliset pyynnöt
Yllä mainitut otsikot kertovat vain selaimelle, milloin noutaa tiedot Web-palvelimelta. Ehdolliset pyynnöt puolestaan kertovat selaimelle, kuinka noutaa se. Ehdolliset pyynnöt kertovat selaimelle, kuinka se voi kysyä palvelimelta, onko välimuistin tietojen kopio vanhentunut.
Tässä prosessissa selain lähettää välimuistiin tallennettuja resursseja koskevia tietoja muistiinsa ja luettuaan nämä tiedot palvelin päättää, ovatko tiedot vanhentuneita vai eivät.
Aikaperusteiset pyynnöt
Aikaperusteisissa pyynnöissä tarkistetaan, onko pyydetty resurssi muutettu palvelimella vai ei. Jos välimuistissa oleva välimuisti on viimeisin, palvelin palauttaa koodin 304.
Voit asettaa ehdollisen pyynnön ajankohtaisesti käyttämällä vastausotsikossa ”Viimeksi muokattu”.
Cache-Control:public, max-age=25998579
Last-Modified: Fri, 08 Jul 2018 15:25:00 GMT
Content-Based
Sisältöpohjaisissa pyynnöissä MD5 Hash (tai mikä tahansa muu toteuttamiskelpoinen vaihtoehto) tarkistetaan sekä palvelinkopiosta että välimuistokopiosta. Tämä kertoo, ovatko tiedot samat vai eivät, jos tiedot ovat erilaisia, MD5-tarkistussumma ei täsmää ja palvelin lähettää uuden kopion resursseista.
Tämä tapahtuu otsikossa olevan "ETag" -kohdan kautta. Sen arvo on resurssien sulatus.
Cache-Control:public, max-age=25998579
ETag: "496d7131f15f0fff99ed5aae”
näkyvyys
Lähes kaikki nykyaikaiset selaimet sisältävät joitain kehitykseen liittyviä työkaluja, joiden avulla voit tarkistaa verkkosivun resurssit, lähdekoodit ja muut näkökohdat. Niistä löydät työkalun kaikkien otsikkojen palauttamiin otsikoihin.
Näet nämä otsikot Google Chromessa napsauttamalla hiiren kakkospainikkeella mitä tahansa tyhjää verkkosivun aluetta ja napsauttamalla ”Tarkasta” tai painamalla CTRL + SHIFT + I avataksesi DevTools. Napsauta tässä työkalussa Verkko-välilehteä ja paina CRTL + R ladataksesi uudelleen nähdäksesi kaikki sivun otsikot.
Käytä tapauksia HTTP-välimuistissa
Alla on joitain HTTP-välimuistin käyttötapoja, jotka ovat seuraavat:
Staattisille omaisuuserille
Sivun staattisille kohteille, kuten kuville, JS-tiedostoille ja CSS-tiedostoille, voit valita välimuistin sisällön aggressiivisen tallentamisen. Jos näitä tiedostoja ei tarvitse ladata, suorituskyky paranee huomattavasti. Siirry tähän käyttötapahtumaan välimuistin hallintaotsikkoon, jonka enimmäisikäarvo on enemmän kuin kuukausi tai jopa vuosi.
Cache-Control:public; max-age=31536000
Dynaamiseen sisältöön
Jos kyseessä on sivun dynaaminen sisältö, sinun on mietittävä itse, mitä tiedostoja selaimen välimuistiin tulisi käyttää ja kuinka kauan. Jos sisältöä vaihdetaan usein, sinun on varmistettava, että välimuistiin valitsemasi aika ei aiheuta käyttäjälle mitään ongelmia.
Yksityisen sisällön välimuisti
Kuten olemme keskustelleet välimuistin hallinta -osiossa, jos sivun sisältö on luonteeltaan yksityistä, voit estää sen välimuistilla välimuistilla, kuten CDN: llä, lisäämällä otsikkoon ”Välimuistin hallinta: yksityinen”.
Toinen turvallisempi lähestymistapa on välimuistin poistaminen yksityisestä sisällöstä ollenkaan.
HTTP-välimuistin toteuttaminen
Nyt kun tiedät mitä HTTP-välimuisti on ja miten se toimii, tarkastellaan kuinka voit ottaa sen käyttöön verkkosivustollasi. HTTP-välimuistin toteutus on hiukan erilainen eri palvelintyypeille. Katsotaanpa tapauksessamme välimuistin toteuttamista .htaccess-tiedoston avulla.
Voit ottaa välimuistin käyttöön sivustolla lisäämällä otsikot esimerkiksi palvelimen .htaccess-tiedostoon:
FilesMatch "\.(ico|pdf|flv|jpg.webp|jpeg.webp|png|gif|js|css|swf)$"
Header set Cache-Control "max-age=31536000, public"
/FilesMatch
Yllä oleva välimuisti tallentaa kaikki, pdf, flv, jpg.webp ja muut mainitussa muodossa, joka on mainittu ”File Match” -muodossa yhden vuoden ajan.
johtopäätös
HTTP-välimuisti on yksi tärkeimmistä temppuista, jotka tekevät sivustosi selaamisesta nopeamman kokemuksen vierailijoillesi. Nyt kun näet miten se toimii, voit ottaa sen käyttöön sivustoillasi ja verkkosovelluksissa, jotta ne olisivat nopeampia käyttäjillesi ja palvelimen kaistanleveyden tallentamiseksi.
Suositellut artikkelit
Tämä on opas HTTP-välimuistiin. Tässä keskustelimme HTTP: n toteutuksesta, ehdollisista pyynnöistä, välimuistin otsikosta ja käyttötapauksista. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -
- Opi mikä on HTML
- Kuinka asentaa Github?
- Mikä on MapReduce Hadoopissa?
- Solmukomentojen aloitusopas
- HTTP-evästeet | turvallisuus