Yaws - фантастический веб-сервер для Эрланга.
Я не вижу, чтобы Cache-control появлялся дважды . Один в запросе, один в ответе. Тот, что в запросе, вероятно, вызван тем, что вы нажали Shift + F5 в браузере или что-то подобное.
На ваш второй вопрос: это зависит от того, чего вы хотите достичь с помощью заголовков кеша.
Я не знаю, чего вы хотели достичь с помощью максимального возраста. Значение слишком велико, поскольку вы неправильно преобразовали DateTime в TimeSpan. Почему бы вам просто не использовать вместо этого TimeSpan.FromMinutes?
Загрузка страницы в порядке. Я обычно сам возился с HTTP-заголовками.
Вы также можете добавить эту строку, если вы слишком сильно устанавливаете максимальный возраст:
// Summary:
// Sets Cache-Control: public to specify that the response is cacheable
// by clients and shared (proxy) caches.
Response.Cache.SetCacheability(HttpCacheability.Public);
Я много манипулирую заголовком ответа с документами и изображениями из обработчика файлов, который обрабатывает запросы на файлы, сохраненные в БД.