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 -

  1. Opi mikä on HTML
  2. Kuinka asentaa Github?
  3. Mikä on MapReduce Hadoopissa?
  4. Solmukomentojen aloitusopas
  5. HTTP-evästeet | turvallisuus