У меня есть несколько миллионов файлов изображений в корзине хранилища S3, и я знаю, что они никогда не изменятся . Чтобы оптимизировать запросы, я решил добавить к своим файлам заголовок с истекающим сроком действия (как описано здесь: правила скорости страницы Google )
Процесс добавления заголовков ко всем моим файлам является долгим и дорогостоящим, поэтому я ' предпочитаю не повторять. Однако Http Rfc рекомендует установить заголовок Expires с максимальной датой истечения одного года в будущем:
Серверы HTTP / 1.1 НЕ ДОЛЖНЫ отправлять даты истечения срока действия более одного года в будущем
... что означает, что я мне придется обновить мои заголовки в течение одного года.
Мой вопрос:
Могу ли я установить значения моих заголовков на очень далекую дату (например, 01-01-2020) и пойти против рекомендации RFC? Каков риск этого?
Есть ли другое решение, чтобы сообщить клиентам, которые запрашивают мои файлы, чтобы они кешировали их на бесконечное время, Все работает нормально, но в моей отладке (результаты печати и т. Д.) Я не могу увидеть, является ли запрос, подготовленный модулем DBI perls, ...
Я использую DBI в Perl для подключения к моей базе данных PostgreSQL. Все работает нормально, но в моей отладке (печать результатов и т. Д.) Я не могу увидеть, действительно ли запрос, подготовленный модулем DBI perls, верен.
У меня что-то вроде этого:
$sth->prepare( qq{SELECT * FROM company WHERE companyname LIKE ? AND city = ?});
$sth->execute( $name.'%', $city);
Я не могу видеть, как sql-запрос следит за вызовом execute, так как execute - это последний шаг, на котором параметры привязываются к запросу.
Я хотел бы иметь что-то вроде $ sth-> getLastExecutedQuery ()
или что-нибудь, чтобы увидеть, как запрос выглядел так.
В этом случае функция getLastExecutedQuery ()
вернет:
SELECT * FROM company WHERE companyname LIKE 'Company Name%' AND city = 'City name';
Есть ли способ получить это? Это только для целей отладки.