-
-
Notifications
You must be signed in to change notification settings - Fork 9
HTTP caching spec
Едно от най - важните ни неща е да можем да разберем кое може да се кешира и кое - не. За целта ще трябва да четем хедърите на клиентския рикуест, както и на отговора от ъпстрийма. Не вярвам да можем да успеем да имплементираме целия стандарт за първата версия. Ще трябва да се ограничим в някакви подмножество. Аз предлагам следните неща:
-
Cache-Control: no-cache
- да пропускаме кеша и да сваляме нов файл от ориджина
Expires
Cache-Control: max-age
-
Last-Modifed
иIf-Modified-Since
за когато взимаме от ориджина файл, на който вече му е изтекло времето, в което е кеширан
- HTTP/1.1 Caching in RFC2616 - старото RFC, което всичко е заедно
- HTTP/1.1 RFC7234 - след разделението в различни файлове
Двете неща би трябвало да са еднакви. Не ме цитирайте за това.
Такива файлове (които механизма е решил, че не са кешируеми) ще трябва да се дават без да докосват диска или кешовете ни. Всяка заявка за такива ще я проксираме прозрачно до ориджина.
В момента използваме целия URI за ключ на кеша. Но трябва да иамме конфигурация за това дали да се използват query параметрите или не. В някои случаи може да искаме файловете /movie.mp4
и /movie.mp4?param=2
да са един и същи файл за кеша ни.