Это не тот случай, если не все HTTP-заголовки получены сервером. Попробуйте этот пример:
var app = require('express')();
app.get('/', (req, res) => {
res.end('header is ' + req.get('databaseName') + '\n');
});
app.listen(3333,() => console.log('listening on 3333'));
запустить его с node app.js
(или как вы его сохранили, как) и соединиться с:
curl http://localhost:3333
Вы получите:
header is undefined
Но когда вы посылаете заголовок:
curl http://localhost:3333 -H 'databaseName: ABC'
Вы получите:
header is ABC
Так что, конечно, сервер получает заголовок.
У вас могут возникнуть проблемы с кодом клиента, не отправляющим соответствующий заголовок, или с неправильно настроенным прокси-сервером, удаляющим определенные заголовки. Но это не так, что некоторые заголовки не принимаются сервером, как вы можете видеть, запустив мой пример.
Ответ на ваш вопрос «Какие пользовательские заголовки HTTP-заголовков заслуживают использования?» действительно зависит от вас. Каждый заголовок, который вам нужен, стоит использовать. Каждый заголовок, который вам не нужен, не стоит использовать.
Также обратите внимание, что префикс X-
для пользовательских заголовков был широко используемым соглашением. Он устарел от RFC 6648, но у вас все еще может быть больше удачи с использованием X-DatabaseName
вместо DatabaseName
заголовков заголовков, чтобы избежать некоторых столкновений.
Если вы отправляете HTTP-запрос с этими заголовками, и они не заканчиваются на вашем сервере, у вас есть две возможные проблемы: несовместимый или плохо сконфигурированный брандмауэр или дрянной HTTP-сервер. Мы не можем ответить на этот вопрос без какой-либо информации о том, как выглядят ваши настройки и тесты. Вы можете прочитать [ask] и включить достаточно подробностей в свой вопрос, чтобы другие могли понять ваш вопрос. – CodeCaster