Skip to content

HTTP caching spec

Doychin edited this page May 24, 2015 · 1 revision

Caching

Едно от най - важните ни неща е да можем да разберем кое може да се кешира и кое - не. За целта ще трябва да четем хедърите на клиентския рикуест, както и на отговора от ъпстрийма. Не вярвам да можем да успеем да имплементираме целия стандарт за първата версия. Ще трябва да се ограничим в някакви подмножество. Аз предлагам следните неща:

Client Request

  • Cache-Control: no-cache - да пропускаме кеша и да сваляме нов файл от ориджина

Upstream Response

  • Expires
  • Cache-Control: max-age
  • Last-Modifed и If-Modified-Since за когато взимаме от ориджина файл, на който вече му е изтекло времето, в което е кеширан

Линкове към стандарти

Двете неща би трябвало да са еднакви. Не ме цитирайте за това.

Файлове, които не можем да кешираме

Такива файлове (които механизма е решил, че не са кешируеми) ще трябва да се дават без да докосват диска или кешовете ни. Всяка заявка за такива ще я проксираме прозрачно до ориджина.

Ключове за кеширане

В момента използваме целия URI за ключ на кеша. Но трябва да иамме конфигурация за това дали да се използват query параметрите или не. В някои случаи може да искаме файловете /movie.mp4 и /movie.mp4?param=2 да са един и същи файл за кеша ни.