Kā sajust sirdsdarbību

Kas notiek, ja nenosaka cache-control galvene? Vai HTTP norāda noklusējuma uzvedību, kas klientiem jāievēro, vai klientiem ir jāizlemj?

Pārlūkā Chrome esmu redzējis dažus Javascript pieprasījumus, kuriem nav cache-control galvenes, kas tiek rādītas kā 200 (from disk cache). Vai Chrome to optimizē?

IE esmu redzējis, ka tas parādās kā 304 (not modified).

Kā es to labāk saprotu?

  • 1 "nav kešatmiņas galvenes", kas nozīmē, ka nav kešatmiņas vadības galvenes vai tiešām nav kešatmiņas galvenes? Kešatmiņas kontrole nav vienīgā galvene, kas ietekmē kešatmiņu. Lielākā daļa tīmekļa serveru nosūtīs pēdējās modificētās galvenes statiskajiem aktīviem, piemēram, Javascript failiem.

Ja nav Cache-Control galvene un nē Expires galveni, bet ir a Last-Modified galveni (kuru statisko līdzekļu gadījumā pēc noklusējuma nosūta lielākā daļa tīmekļa serveru), lielākā daļa pārlūkprogrammu izmantos heiristisks svaigums lai noteiktu, cik ilgi kešatmiņā saglabāt šo līdzekli.

Tipisks aprēķins tam (kuru ieteica RFC 7234) ir:

(current time - last modified time) / 10 

Tā, piemēram, ja attēla pēdējais modificētais laiks norāda, ka tas pēdējo reizi mainīts pirms 60 dienām, pārlūkprogramma var nolemt, ka tā var pamatoti izmantot šī attēla lokāli kešatmiņā saglabāto versiju 6 dienas, pirms tiek pārbaudīta jauna versija.

Ņemiet vērā, ka vairumā gadījumu, ja nospiežat atsvaidzināt, jūs esat stāstot pārlūkprogrammā, lai ielādētu jaunu versiju, tāpēc šajā situācijā šī loģika nebūtu piemērojama.

Svaigums, ko nosaka faktiskās pārlūkprogrammas:

  • Pārlūkā Chrome joprojām tiek izmantots vecais “10% laika kopš pēdējās modifikācijas”, kas atbilst RFC ieteikumam
  • Tas pats attiecas uz Safari
  • Mūsdienās Firefox izmanto min(one week, (current time - last modified time) / 10). Tātad svaigums ir nekad vairāk nekā vienu nedēļu
  • 3 Un, ja nav Last-Modified galvene?
  • Tā ir atbilde, kuru meklēju. Tomēr man ir interesanti, kas dažādiem pārlūkiem ir noklusējums.
  • @ bertonc96 Šķiet, ka tādā gadījumā tas ir 0. Skatīt, piemēram, šo.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?