Каков возраст сущности в земле HTTP/1.1?
Я боролся с этим вопросом в течение нескольких дней.
Каков возраст объекта, хранящегося в кэше. В частности, меня интересует Облачный фронт. Если я укажу
Cache-Control: max-age=60, общедоступный
когда я загружаю его в момент времени T = N, а затем проходит 10 минут, будет ли официальный возраст моей сущности 600 секунд? Другими словами, возраст сущности СЕЙЧАС - Т?
Например, если я отправлю файл в S3 с датой истечения 30 минут, а затем не буду загружать новую версию в течение 1 недели, будет ли Cloud Front повторно проверять (GET If-Modified-Since) эту сущность на каждый запрос? Или он будет повторять проверку сущности каждые 30 минут и устанавливать возраст равным 0 после каждой повторной проверки?
Я искал здесь определение возраста, но я не совсем уверен, каков ответ:
1 ответ
max-age
Директива указывает время в секундах, после которого клиент должен считать, что содержимое по указанному URL-адресу недействительно.
Это означает, что если у вас есть максимальный возраст 10 минут, получите ресурс в момент времени t, а затем, если вам нужен контент, например, в момент времени t + 9 минут, он не будет извлечен. Но его срок годности остается неизменным на стороне клиента.
Это означает, что в любой момент времени после t + 10 минут контент будет извлечен снова, а время его истечения будет пересчитано (так как оно могло измениться за это время).
По крайней мере, так должны работать клиенты.
max-age = 0 является эквивалентом "всегда получать этот ресурс снова".