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"

トップ