--- title: Network Error Logging slug: Web/HTTP/Network_Error_Logging tags: - Guide - HTTP - Network Error Logging - Reference translation_of: Web/HTTP/Network_Error_Logging ---
ネットワークエラーロギングは、HTTP の {{HTTPHeader("NEL")}} レスポンスヘッダーを使って設定できるメカニズムです。この実験的なヘッダーにより、ウェブサイトやアプリケーションは、対応しているブラウザーから、失敗した (必要であれば成功した) ネットワーク読み取りに関するレポートを受け取ることを選択することができます。
レポートは、 {{HTTPHeader("Report-To")}} ヘッダーで定義された報告グループに送信されます。
ウェブアプリケーションは、 JSON エンコードされたオブジェクトである NEL ヘッダーを使って、この動作を選択します。
NEL: { "report_to": "nel",
"max_age": 31556952 }
ブラウザーから安全と認識されたオリジンが必要です。
以下のオブジェクトキーが NEL ヘッダーで指定されています。
ネットワークエラーレポートの送信先となる Reporting API グループです。
上記のレポートグループは、 {{HTTPHeader("Report-To")}} ヘッダー内で通常の方法で定義されます。例えば下記のようになります。
Report-To: { "group": "nel",
"max_age": 31556952,
"endpoints": [
{ "url": "https://example.com/csp-reports" }
] }
これらの例では、Reporting API のペイロード全体を示しています。最上位の "body" キーには、ネットワークエラーレポートが含まれています。
{
"age": 20,
"type": "network-error",
"url": "https://example.com/previous-page",
"body": {
"elapsed_time": 338,
"method": "POST",
"phase": "application",
"protocol": "http/1.1",
"referrer": "https://example.com/previous-page",
"sampling_fraction": 1,
"server_ip": "137.205.28.66",
"status_code": 400,
"type": "http.error",
"url": "https://example.com/bad-request"
}
}
なお、このレポートではフェーズが dns に設定されており、含めることのできる server_ip はありません。
{
"age": 20,
"type": "network-error",
"url": "https://example.com/previous-page",
"body": {
"elapsed_time": 18,
"method": "POST",
"phase": "dns",
"protocol": "http/1.1",
"referrer": "https://example.com/previous-page",
"sampling_fraction": 1,
"server_ip": "",
"status_code": 0,
"type": "dns.name_not_resolved",
"url": "https://example-host.com/"
}
}
ネットワークエラーの種類は、仕様で定義された以下の値のいずれかですが、ブラウザは独自のエラー種別を追加して送信することができます。
dns.unreachabledns.name_not_resolveddns.faileddns.address_changeddns.address_changed に設定されます。tcp.timed_outtcp.closedtcp.resettcp.refusedtcp.abortedtcp.address_invalidtcp.address_unreachabletcp.failedhttp.errorhttp.protocol.errorhttp.response.invalidhttp.response.redirect_loophttp.failed| 仕様書 |
|---|
| Network Error Logging |
{{Compat("http.headers.NEL")}}