Удалите заголовок ответа сервера в Yesod/Warp

Как я могу удалить Server HTTP-заголовок ответа в Yesod? Я нашел код, который отвечает за установку этого заголовка, но я не знаю, что делать дальше. Я знаю, что могу заменить значение заголовка пустой строкой, используя addHeader "Server" "", но я бы предпочел удалить его полностью.

2 ответа

Решение

Я сделал проблему с репозиторием GitHub Warp, и они изменили его так, что, когда имя сервера пусто, заголовок "Server" не отправляется. Поэтому решение состоит в том, чтобы установить имя сервера в пустую строку, используя setServerName "", В моем случае я должен был добавить это к warpSettings функция в Application.hs, Обратите внимание, что вы должны использовать версию Warp, которая содержит исправление (по состоянию на 3 мая '17 оно еще не было выпущено, но вы можете получить его прямо из GitHub).

Вы должны вызывать методы внутри функции, которую вы связали. Эта функция добавит "Заголовок даты и сервера, если он не существует в заголовке ответа HTTP", поэтому вам нужно переопределить его, если вы не хотите такого поведения.

Вот почему люди всегда говорят, чтобы ваш код был модульным, а ваши функции - маленькими; эта функция слишком велика для вашего варианта использования, и нет конкретной функции меньшего размера, которая делает именно то, что вы хотите (иначе она была бы вызвана этой функцией!)

Другие вопросы по тегам