Orion HTTP ヘッダ
このドキュメントでは、src/lib/rest/HttpHeaders.h で定義されている Orion で使用されるすべてのヘッダについて説明します。
1) Accept
2) Content-Length
3) Content-Type
4) Expect
5) Host
6) Origin
7) User-Agent
8) X-Forwarded-For 及び X-Real-IP
9) Access-Control-Allow-Origin
10) Access-Control-Allow-Headers
11) Access-Control-Allow-Methods
12) Access-Control-Max-Age
13) Access-Control-Expose-Headers
14) Allow
15) Location
16) Ngsiv2-AttrsFormat
17) Fiware-Service
18) Fiware-Servicepath
19) Fiware-Total-Count
20) Fiware-Correlator
21) X-Auth-Token 22) Authorization
Orion で使用される HTTP ヘッダとその説明
1. Accept
Accept HTTP ヘッダは、Orion が受信する着信 HTTP リクエストで使用されます。リクエストで Accept HTTP ヘッダを使用して、
クライアントが受け入れる MIME タイプを指定します。通常、その値は application/json
(JSON MIME タイプの場合) ですが、
NGSIv2 API の一部の操作では text/plain
も許可されます。たとえば、リクエスト URL で使用する場合 :
curl ... -H 'Accept: application/json'
このリクエストでは、明確に定義された JSON 形式でレスポンス・データを取得します。
この仕様の API レスポンス・ペイロードは、application/json
および (属性値タイプの操作用) text/plain
MIME タイプに
基づいています。Accept タイプと異なる HTTP リクエストを発行するクライアントは、406 Not Acceptable
エラーを受け取ります。
2. Content-Length
このヘッダは、リクエストとレスポンスの両方で使用されます。Content-Length HTTP ヘッダは、Orion のレスポンスの必須ヘッダ
です。リクエストとレスポンスのボディの長さをバイト単位で定義します。Orion Context Broker は、すべてのクライアント・
リクエストで常に Content-Length ヘッダを期待します。そうでない場合、クライアントは 411 Length Required
レスポンスを
受信します。これは、ベースとなる HTTP ライブラリ (libmicrohttpd) の動作方法によるものです。
Content-Length: 34
3. Content-Type
リクエストまたはレスポンスの MIME タイプを指定するために使用されます。通常、その値は application/json
(JSON MIME
タイプの場合) ですが、NGSIv2 API の一部の操作では text/plain
も許可されます。
curl ... -H 'Content-Type: application/json'
このリクエストは、明確に定義された JSON 形式でデータを送信します。
4. Expect
Orion は、発信リクエスト (通知およびフォワードされたクエリ/更新) で空の Expect:
ヘッダを送信します。詳細については、
flaviocopes.com,
ietf.org,
wikipedia.org
の Expect HTTP ヘッダの一般的なドキュメントに従ってください。
Expect:
5. Host
Orion は、このヘッダを発信リクエスト (通知およびフォワードされた更新/クエリ) に含めます。このヘッダは、通知のレシーバー のポート番号を提供します。
Host: localhost:1028
6. Origin
Origin は、Orion が受信する着信 HTTP リクエストで使用されます。この操作は CORS に関連しています。 ユーザ・マニュアルの CORS についてを参照してください。
Origin: http://www.example-social-network.com
7. User-Agent
User-Agent HTTP ヘッダは、通知およびフォワードされたリクエストで使用されます。使用する Orion のバージョンとその転送 ライブラリについて説明します。ユーザ・エージェントを識別する文字列を提供します。
User-Agent: orion/2.2.0-next libcurl/7.29.0 (通知およびフォワードされたリクエスト内)
8. X-Forwarded-For 及び X-Real-IP
両方のヘッダは、Orion が受信する着信 HTTP リクエストで使用されます。X-Forwarded-For ヘッダは、トランザクションのソース として HTTP リクエストの元の IP をオーバーライドします。X-Real-IP および X-Forwarded-For (Orion 上で潜在的なプロキシに よって使用される) は IP をオーバーライドします。両方がされた場合、X-Real-IP は、X-Forwarded-For よりも優先されます。
X-Forwarded-For: 129.78.138.66
9. Access-Control-Allow-Origin
これは、Orion によって送信される発信 HTTP レスポンスで使用されるオプションのヘッダです。この動作は CORS に関連しています。 ユーザ・マニュアルの CORS についてを参照してください。
Access-Control-Allow-Origin: *
10. Access-Control-Allow-Headers
Orion によって送信される発信 HTTP レスポンスで使用されます。 この動作は CORS に関連しています。ユーザ・マニュアルの CORS について を参照してください。
Access-Control-Allow-Headers: Authorization, Content-Type, Fiware-Service, Fiware-Servicepath, Ngsiv2-AttrsFormat, Fiware-Correlator, X-Forwarded-For, X-Real-IP, X-Auth-Token
11. Access-Control-Allow-Methods
Orion によって送信される発信 HTTP レスポンスで使用されます。この動作は CORS に関連しています。 ユーザ・マニュアルの CORS についてを参照してください。
12. Access-Control-Max-Age
Orion によって送信される発信 HTTP レスポンスで使用されます。この動作は CORS に関連しています。 ユーザ・マニュアルの CORS についてを参照してください。
Access-Control-Max-Age: 86400
13. Access-Control-Expose-Headers
Orion によって送信される発信 HTTP レスポンスで使用されます。この動作は CORS に関連しています。 ユーザ・マニュアルの CORS についてを参照してください。
Access-Control-Expose-Headers: Fiware-Correlator, Fiware-Total-Count, Location.
14. Allow
Orion によって送信される発信 HTTP レスポンスで使用されます。クライアントが特定の URL リソースで誤った HTTP メソッドを使用 した場合、このヘッダは、どのメソッドが許可されるかをクライアントに通知するために使用されます。
Allow: GET
15. Location
これは、サブスクリプション、エンティティの作成およびレジストレーション時に Orion によって送信される発信 HTTP レスポンスで
使用されます。レスポンスには、サブスクリプション ID, エンティティ ID, またはレジストレーション ID を保持する Location
ヘッダが含まれます。サブスクリプション、エンティティ、またはレジストレーションの更新と削除に使用される24桁の16進数です。
リクエストで -v
を使用して、レスポンスの Location ヘッダを取得します。
curl -v localhost:1026/v2/subscriptions -s -S -H 'Content-Type: application/json' -d @- <<EOF
{
//payload
}
EOF
取得するレスポンス:
Location: /v2/subscriptions/57458eb60962ef754e7c0998
16. Ngsiv2-AttrsFormat
Orion によって送信される発信 HTTP 通知で使用されます。通知には、関連するサブスクリプションの形式の値を持つ HTTP ヘッダ
Ngsiv2-AttrsFormat
を含める必要があります。これにより、通知の受信者は、通知ペイロードから形式を推測する必要なく形式を
認識できます。通知にカスタム・ペイロードが使用された場合、通知の Ngsiv2-AttrsFormat
ヘッダに custom
の値が使用される
ことに注意してください。Ngsiv2-AttrsFormat は、カスタム通知での変更不可能なヘッダです。たとえば、
"httpCustom": { ... "headers": {"Ngsiv2-Attrsformat": "something"} ...}
としても、無視されます。
Ngsiv2-Attrsformat: normalized
17. Fiware-Service
Fiware-Service は、Orion で管理されるあらゆる種類の HTTP トランザクション (着信/発信リクエストおよび発信レスポンス) で使用
されます。-multiservice
が使用された場合、Orion は、特定のテナント/サービスのサブスクリプションに関連付けられた通知
リクエストに Fiware-Service
ヘッダを含めます (デフォルトのサービス/テナントを除き、ヘッダは存在しません)。
Orion API のマルチ・テナンシーについてを参照してください。
POST http://127.0.0.1:9977/notify
Content-Length: 725
User-Agent: orion/2.3.0
Host: 127.0.0.1:9977
Accept: application/json
Fiware-Service: t_02
Content-Type: application/json
{
...
}
18. Fiware-Servicepath
Fiware-ServicePath は、Orion で管理されるあらゆる種類の HTTP トランザクション (着信/発信リクエストおよび発信レスポンス) で使用されるオプションのヘッダです。Orion API の service_path についてを参照してください。
Fiware-ServicePath: /Madrid/Gardens/ParqueNorte/Parterre1
19. Fiware-Total-Count
これは、Orion によって送信される発信 HTTP レスポンスで使用されるオプションのヘッダです。この操作はページネーションに関連 しています。Orion API のページネーションについて を参照してください。
20. Fiware-Correlator
Fiware-Correlator は、発信レスポンスで使用されます。また、通知およびフォワードされたクエリ/更新で送信または伝播されます。
Fiware-Correlator は、カスタム通知での変更不可能なヘッダです。たとえば、
"httpCustom": { ... "headers": {"Fiware-Correlator": "foo"} ...}
としても、無視されます。
管理者マニュアルのログについてを参照してください。
Fiware-Correlator: 600119ce-eeaa-11e9-9e0c-080027a71049
21. X-Auth-Token
X-Auth-Token はオプションの HTTP ヘッダで、Orion はリクエストで受信し、元のリクエストに関連付けられた他のリクエスト (通知およびフォワードされたクエリ/更新済み) に透過的に伝播します。 PEP Steelskin などの Orion と統合されたセキュリティ・エンフォース・ プロキシによって使用されます。
"X-Auth-Token": "fff0f4af447f4b589c835f805fe4be29"
22. Authorization
Authorization は、Orion がリクエストで受信したオプションの HTTP ヘッダであり、元のリクエストに関連付けられた他のリクエスト (通知およびフォワードされたクエリ/更新) に透過的に伝播します。PEP Steelskin など の Orion と統合されたセキュリティ実施プロキシ (Security Enforcement Proxies) によって使用されます。
"Authorization": "Bearer fff0f4af447f4b589c835f805fe4be29"