哪个自定义HTTP标头名称值得使用?

时间:2016-11-21 11:27:23

标签: node.js http openshift

我看到如果使用自定义HTTP标头名称,其中一些将由服务器接收,即filenameoperation,但有些像databaseName未收到。知道为什么吗?我应该使用filenameoperation吗?

OpenShift平台与预先配置的Node.js网络服务器配合使用。

1 个答案:

答案 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标题名称可能会更幸运,以避免发生冲突。