Удалите заголовок ответа сервера в Yesod/Warp
Как я могу удалить Server
HTTP-заголовок ответа в Yesod? Я нашел код, который отвечает за установку этого заголовка, но я не знаю, что делать дальше. Я знаю, что могу заменить значение заголовка пустой строкой, используя addHeader "Server" ""
, но я бы предпочел удалить его полностью.
2 ответа
Я сделал проблему с репозиторием GitHub Warp, и они изменили его так, что, когда имя сервера пусто, заголовок "Server" не отправляется. Поэтому решение состоит в том, чтобы установить имя сервера в пустую строку, используя setServerName ""
, В моем случае я должен был добавить это к warpSettings
функция в Application.hs
, Обратите внимание, что вы должны использовать версию Warp, которая содержит исправление (по состоянию на 3 мая '17 оно еще не было выпущено, но вы можете получить его прямо из GitHub).
Вы должны вызывать методы внутри функции, которую вы связали. Эта функция добавит "Заголовок даты и сервера, если он не существует в заголовке ответа HTTP", поэтому вам нужно переопределить его, если вы не хотите такого поведения.
Вот почему люди всегда говорят, чтобы ваш код был модульным, а ваши функции - маленькими; эта функция слишком велика для вашего варианта использования, и нет конкретной функции меньшего размера, которая делает именно то, что вы хотите (иначе она была бы вызвана этой функцией!)