2016-11-21 2 views
-2

Я вижу, что если использовать пользовательские заголовки HTTP-заголовков, некоторые из них будут получены сервером, то есть filename, operation, но некоторые вроде databaseName не принимаются. Любая идея почему? Должен ли я использовать filename, operation?Какие пользовательские заголовки HTTP-заголовков заслуживают внимания?

Использование OpenShift платформа с предварительно сконфигурированным Node.js веб-сервером.

+0

Если вы отправляете HTTP-запрос с этими заголовками, и они не заканчиваются на вашем сервере, у вас есть две возможные проблемы: несовместимый или плохо сконфигурированный брандмауэр или дрянной HTTP-сервер. Мы не можем ответить на этот вопрос без какой-либо информации о том, как выглядят ваши настройки и тесты. Вы можете прочитать [ask] и включить достаточно подробностей в свой вопрос, чтобы другие могли понять ваш вопрос. – CodeCaster

ответ

0

Это не тот случай, если не все 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 заголовков заголовков, чтобы избежать некоторых столкновений.