-2
我看到,如果使用自定义HTTP标头名称,它们中的一些将被服务器接收,即filename
,operation
,但有些像databaseName
未收到。任何想法为什么?我应该使用filename
,operation
吗?哪个自定义HTTP头名称值得使用?
使用OpenShift
平台和预配置的Node.js
网络服务器。
我看到,如果使用自定义HTTP标头名称,它们中的一些将被服务器接收,即filename
,operation
,但有些像databaseName
未收到。任何想法为什么?我应该使用filename
,operation
吗?哪个自定义HTTP头名称值得使用?
使用OpenShift
平台和预配置的Node.js
网络服务器。
这不是所有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服务器。没有任何有关您的设置和测试的信息,我们无法回答这个问题。你可能想阅读[问]并在你的问题中包含足够的细节,以便其他人可以理解你的问题。 – CodeCaster