我看到如果使用自定义HTTP标头名称,其中一些将由服务器接收,即filename
,operation
,但有些像databaseName
未收到。知道为什么吗?我应该使用filename
,operation
吗?
将OpenShift
平台与预先配置的Node.js
网络服务器配合使用。
答案 0 :(得分: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
标题名称可能会更幸运,以避免发生冲突。