-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