PHP: последний измененный заголовок для фиксированной ссылки на ресурс, где ресурс меняется время от времени?

Задайте значение по умолчанию для столбца в таблице на сервере MSSQL и в атрибуте добавления кода класса, например:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

для того же свойства.

-1
задан Blackbam 5 March 2019 в 18:21
поделиться

1 ответ

После некоторых исследований я нашел заголовок ETag, который решает мою проблему. Установка заголовка ETag работает, как описано здесь: Как использовать etags в файле PHP?

Также нашли некоторую информацию о том, как объединить это с заголовком Expires: [114 ] ETag vs Header Expires - заголовок ETag делает по крайней мере один запрос для сравнения контрольной суммы файла, в то время как заголовок expires делает по крайней мере один запрос вообще.

Последняя часть головоломки была: HTTP: Заголовок ETag делает заголовок Cache-Control устаревшим? Как сделать так, чтобы Cache-Control не был вреден?

Поэтому у меня есть идеальный ответ (по крайней мере, я так думаю):

$quoted = sprintf('"%s"', addcslashes(basename($file), '"\\'));
$size   = filesize($file);
$etag   = hash_file('md5', $file); 

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $quoted); 
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Pragma: public');
header('Content-Length: ' . $size);
header('Cache-Control: no-cache');
header('Expires: 0');
header('ETag: ' . $etag);
0
ответ дан Blackbam 5 March 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: