From 6ef1fa4618e08426b874529619a66adbd3d1fcf0 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:07:59 +0100 Subject: unslug ja: move --- .../orphaned/monitoring_http_activity/index.html | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 files/ja/orphaned/monitoring_http_activity/index.html (limited to 'files/ja/orphaned/monitoring_http_activity/index.html') diff --git a/files/ja/orphaned/monitoring_http_activity/index.html b/files/ja/orphaned/monitoring_http_activity/index.html new file mode 100644 index 0000000000..6fd97a5a38 --- /dev/null +++ b/files/ja/orphaned/monitoring_http_activity/index.html @@ -0,0 +1,41 @@ +--- +title: HTTP アクティビティのモニタリング +slug: Monitoring_HTTP_activity +--- +

 {{ gecko_minversion_header("1.9.2") }}

+

Gecko は {{ interface("nsIHttpActivityObserver") }} インターフェースを含んでおり、コールバックを受け取る形でHTTPトランザクションをリアルタイムにモニタすることができます。

+

HTTP activity observer を作る

+

HTTP上のアクティビティを観察するには、コード内で {{ interface("nsIHttpActivityObserver") }} を実装する必要があります。このインターフェースはとても単純で、 {{ ifmethod("nsIHttpActivityObserver", "observeActivity") }} という1つのメソッドを実装するだけです。このメソッドはHTTPチャンネルで対象となるアクションが発生するごとに呼び出されます。

+
// インターフェースへの参照を定義する
var nsIHttpActivityObserver = Components.interfaces.
nsIHttpActivityObserver; + +var httpObserver = +{ + observeActivity: function(aHttpChannel, aActivityType, aActivitySubtype, aTimestamp, aExtraSizeData, aExtraStringData) + { +      if (aActivityType == nsIHttpActivityObserver.ACTIVITY_TYPE_HTTP_TRANSACTION) { +        switch(aActivitySubtype) { +          case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_HEADER: +            // received response header +            break; +          case nsIHttpActivityObserver.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE: +            // received complete HTTP response +            break; +        } +      } + } +}; +
+

次に、activity observer を実際に組み込む必要があります。これは {{ interface("nsIHttpActivityDistributor") }} の{{ ifmethod("nsIHttpActivityDistributor", "addObserver") }} メソッドを用いて行います:

+
var activityDistributor = Components.classes["@mozilla.org/network/http-activity-distributor;1"]
+                                    .getService(Components.interfaces.nsIHttpActivityDistributor);
+activityDistributor.addObserver(httpObserver);
+
+

アクティビティを観察する

+

観察可能なクラスは2つあります: ソケットレベルで発生するものと、HTTPトランザクションレベルで発生するものです。

+

観察可能なソケットのアクティビティ

+

{{ interface("nsIHttpActivityDistributor") }} メソッドに報告されアクティビティが ACTIVITY_TYPE_SOCKET_TRANSPORT の場合、発生したアクティビティの詳細な型を示すアクティビティサブタイプは socket transport status code となります。

+

観察可能な HTTP のアクティビティ

+

アクティビティタイプ が ACTIVITY_TYPE_HTTP_TRANSACTION の場合、アクティビティサブタイプは activity subtype 定数 のうちの1つとなります。これらは送信されるHTTPリクエストヘッダやボディ、受信するHTTPヘッダなどを含むHTTPトランザクション全体を観察するための機能も含みます。

+

参照

+ -- cgit v1.2.3-54-g00ecf