プローブURLでどんなヘッダー投げているか確認
プローブURLって
どんなことするのかわからないので・・・
ドキュメントの情報としては
An HTTP or HTTPS (preferred) URL to probe, using a GET request. If the URL's hostname cannot be resolved, if the server is unreachable, or if the server does not respond with a 200 HTTP status code, a VPN connection is established in response. Note: This key is valid only if the value of DomainAction is ConnectIfNeeded.
200OK返せとか、200OK以外返して判断するみたいなのであまり 仕組みについては細かく言及していない感じ
ググってみたところ
以下より抜粋
無線LAN - ネットワークエンジニアを目指して
無線LAN - ネットワークエンジニアを目指して
とのこと
うーーーーーーーーーーーーーん VPN通信可能チェック用の簡易APIと考えれば良いのか・・・
今回、実際のプローブレスポンスはできなくとも似た感じの挙動で対応できれば問題ないからよいかな
iphone側でGETリクエストで送信するのでURLを工夫してVPNからの接続検査を制御する感じになるのか・・・ 実際にどんなヘッダーが来るのかも気になったので簡単なコードで確認してみた
これ(Node.js の mocky を使用し スタブREST API を作成してみる)
↓
var mocky = require('mocky'); var fs = require('fs'); var url = require('url'); var querystring = require('querystring'); mocky.createServer([{ // Users url: "/test1", method: 'get', res: function(req, res, callback) { //iconsole.log(req.socket); console.log(req.rawHeaders); callback(null, { status: 500, body: "error" }); } } ]).listen(4321);
出たログ
[mocksrv] [req 10] [Thu, 04 May 2023 08:54:11 GMT] method: GET url: /test1 req.body: [ 'Host', '192.168.123.51:4321', 'Accept', '*/*', 'Accept-Language', 'en-US,en;q=0.9', 'Connection', 'keep-alive', 'Accept-Encoding', 'gzip, deflate', 'User-Agent', 'nesessionmanager (unknown version) CFNetwork/1399 Darwin/22.1.0' ]
CFNetwork | Apple Developer Documentation
なるほど、、、ネットワークの構成変更時の処理だからこの機能で処理されるのか 内部的な意味は分かってないけど ひとまずはここまでとする
プローブリクエストは別途あらためて勉強しておこう