<commit_before>[目次](Index.md)

---

# 詳細なトピック

ここでは、「認証プロキシ爆発しろ！」のさらに詳細な使い方について説明します。

* [Basic認証決めつけモード](#Basic認証決めつけモード)
* [システムがサスペンドする際の挙動](#システムがサスペンドする際の挙動)
* [MAPEのログと.NET FrameworkのTraceログとの関係](#mapeのログとnet-frameworkのtraceログとの関係)
* [初期設定のデフォルト値](#初期設定のデフォルト値)


## Basic認証決めつけモード

Basic認証を要求する認証プロキシとの通信を効率化するモードです。

通常、httpクライアントと認証プロキシとの通信は以下の手順で行われます。

1. httpクライアントが認証プロキシにリクエストを送る。
1. 認証プロキシが407 (Proxy Authentication Required)を返す。その際に認証方式が指定される。
1. httpクライアントは指定された方式の認証情報をつけてリクエストを再送する。
1. プロキシが通信を中継する。

Basic認証決めつけモードでは、
最初のリクエストの段階からBasic認証形式の認証情報を追加してリクエストを送信します。
これで認証が通れば、認証プロキシとの通信が一往復分節約できたことになります。

もし、認証が失敗し、認証プロキシから407が返ってきた場合（パスワードが変更されている、Basic認証以外の認証方式が必要、等）は、
通常の認証処理が実行されます。

認証プロキシがBasic認証を行っていることが分かっている場合は、このモードを有効にすると、通信ごとに一往復分のやり取りが節約できます。

Basic認証決めつけモードは対象とする認証プロキシごとに有効/無効を設定します。
認証プロキシに対する認証情報を入力する際に、「Basic認証決めつけモード」を有効にするかどうか指定します。


## システムがサスペンドする際の挙動

GUI版の「認証プロキシ爆発しろ！」は、
システムがサスペンド（スリープ/休止）する際に通信中継中であれば、
中継を中止します。
この場合、システムが復帰したら中継の再開を自動的に試みます。

中継の再開は、以下の手順で実行されます。

1. システムが復帰したら、「初期遅延」時間（ミリ秒）待機し、中継の再開を試みます。
1. 中継の再開に失敗した場合（ネットワーク環境が準備できていない場合など）は、「試行間隔」時間（ミリ秒）待機し、再試行します。
1. 合計で「試行回数」回再開を試み、成功しなかった場合は中継再開を断念します。
1. 待機中に手動で中継を開始させた場合は、以降の再試行は行いません。

「試行回数」「初期遅延」「試行間隔」のデフォルト値はそれぞれ2回、10秒、3秒です。初期遅延の値は、システム復帰後にネットワークやシステムのプロキシ設定が復旧するのに5-10秒かかっていることからこの値にしています。

これらの値は「設定」ウィンドウの「その他」タブで変更することができます。

また、設定ファイル中では、これらの値はそれぞれ`GUI`オブジェクトの`ResumeTryCount`, `ResumeDelay`, `ResumeInterval`プロパティに対応しています。設定オブジェクトの詳細については、[設定ファイルリファレンス](Reference_Settings.md)を参照してください。


## MAPEのログと.NET FrameworkのTraceログとの関係

（未稿）


## 初期設定のデフォルト値

初期設定時に用いる設定のデフォルト値を、
GUI版コマンド（`mapegui.exe`）のアプリケーション構成ファイル（`mapegui.exe.config`）の`appSettings`要素に記述できます。
カスタマイズされた`mapegui.exe.config`とともに「認証プロキシ爆発しろ！」を配布することで、
初期設定時に各環境に合わせたデフォルト値を提供することができます。

設定可能な値は以下の通りです。
設定オブジェクトの詳細については、[設定ファイルリファレンス](Reference_Settings.md)を参照してください。

| キー | 値の型 | 値の内容 |
|:----|:----|:----|:----|<commit_msg>Fix the format of the table of keys in AdvancedTopic.md.<commit_after>[目次](Index.md)

---

# 詳細なトピック

ここでは、「認証プロキシ爆発しろ！」のさらに詳細な使い方について説明します。

* [Basic認証決めつけモード](#Basic認証決めつけモード)
* [システムがサスペンドする際の挙動](#システムがサスペンドする際の挙動)
* [MAPEのログと.NET FrameworkのTraceログとの関係](#mapeのログとnet-frameworkのtraceログとの関係)
* [初期設定のデフォルト値](#初期設定のデフォルト値)


## Basic認証決めつけモード

Basic認証を要求する認証プロキシとの通信を効率化するモードです。

通常、httpクライアントと認証プロキシとの通信は以下の手順で行われます。

1. httpクライアントが認証プロキシにリクエストを送る。
1. 認証プロキシが407 (Proxy Authentication Required)を返す。その際に認証方式が指定される。
1. httpクライアントは指定された方式の認証情報をつけてリクエストを再送する。
1. プロキシが通信を中継する。

Basic認証決めつけモードでは、
最初のリクエストの段階からBasic認証形式の認証情報を追加してリクエストを送信します。
これで認証が通れば、認証プロキシとの通信が一往復分節約できたことになります。

もし、認証が失敗し、認証プロキシから407が返ってきた場合（パスワードが変更されている、Basic認証以外の認証方式が必要、等）は、
通常の認証処理が実行されます。

認証プロキシがBasic認証を行っていることが分かっている場合は、このモードを有効にすると、通信ごとに一往復分のやり取りが節約できます。

Basic認証決めつけモードは対象とする認証プロキシごとに有効/無効を設定します。
認証プロキシに対する認証情報を入力する際に、「Basic認証決めつけモード」を有効にするかどうか指定します。


## システムがサスペンドする際の挙動

GUI版の「認証プロキシ爆発しろ！」は、
システムがサスペンド（スリープ/休止）する際に通信中継中であれば、
中継を中止します。
この場合、システムが復帰したら中継の再開を自動的に試みます。

中継の再開は、以下の手順で実行されます。

1. システムが復帰したら、「初期遅延」時間（ミリ秒）待機し、中継の再開を試みます。
1. 中継の再開に失敗した場合（ネットワーク環境が準備できていない場合など）は、「試行間隔」時間（ミリ秒）待機し、再試行します。
1. 合計で「試行回数」回再開を試み、成功しなかった場合は中継再開を断念します。
1. 待機中に手動で中継を開始させた場合は、以降の再試行は行いません。

「試行回数」「初期遅延」「試行間隔」のデフォルト値はそれぞれ2回、10秒、3秒です。初期遅延の値は、システム復帰後にネットワークやシステムのプロキシ設定が復旧するのに5-10秒かかっていることからこの値にしています。

これらの値は「設定」ウィンドウの「その他」タブで変更することができます。

また、設定ファイル中では、これらの値はそれぞれ`GUI`オブジェクトの`ResumeTryCount`, `ResumeDelay`, `ResumeInterval`プロパティに対応しています。設定オブジェクトの詳細については、[設定ファイルリファレンス](Reference_Settings.md)を参照してください。


## MAPEのログと.NET FrameworkのTraceログとの関係

（未稿）


## 初期設定のデフォルト値

初期設定時に用いる設定のデフォルト値を、
GUI版コマンド（`mapegui.exe`）のアプリケーション構成ファイル（`mapegui.exe.config`）の`appSettings`要素に記述できます。
カスタマイズされた`mapegui.exe.config`とともに「認証プロキシ爆発しろ！」を配布することで、
初期設定時に各環境に合わせたデフォルト値を提供することができます。

設定可能な値は以下の通りです。
設定オブジェクトの詳細については、[設定ファイルリファレンス](Reference_Settings.md)を参照してください。

| キー | 値の型 | 値の内容 |
|:----|:----|:----|
{'fraction_non_alphanumeric': 0.11597204245405125, 'fraction_numerical': 0.010872378980067305, 'mean_word_length': 11.88, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3932402', 'n_tokens_mistral': 3384, 'n_tokens_neox': 3406, 'n_words': 133}