開発者の敵(爆)
- サーバからクライアントに送信する技術 - WebSocketを中心に
- i-FILTERは上記のプロキシサーバの事情とは別の理由でWebSocketを止めてしまいます。
- フィルタリングポリシーに違反するからかと思いきやそうではなく、WebSocketのプロトコルを理解できずに手を出してこけているというもの。しかも2重にこけています。
- サーバからのレスポンスヘッダのうち、Connection ヘッダを書き換えてしまいます。これでWebSocketの規格違反になり、大部分のWebSocketクライアントライブラリは接続失敗と判定します。
- JavaScript以外のクライアントなら、クライアント側をごにょごにょして Connection ヘッダの規格違反を無視するようにできるでしょう。しかしそうしても、上りのメッセージがサーバに届きません。
- ここの仕組みはまだ完全には解析できていませんが、おそらくi-FILTERが一問一答型の通信を想定しているため、上りメッセージもHTTPリクエストだと解釈し、ヘッダセクションだとして解析しようとバッファしてそのまま止まってしまっている、そんな動きに見えます。
- ソフトウェア側での対策はできず、i-FILTERの設定をいじってホスト名だかIPアドレスだかを基準に除外設定してもらうしかありません。
ユーザー認証 †
回避策 †
Windows †
環境変数 HTTP_PROXY, HTTPS_PROXY の設定(コマンドプロンプト) †
set http_proxy=http://[ユーザID]:[パスワード]@[ProxyのIPアドレス]:[Proxyのポート番号]
set https_proxy=http://[ユーザID]:[パスワード]@[ProxyのIPアドレス]:[Proxyのポート番号]
環境変数 HTTP_PROXY, HTTPS_PROXY の設定(PowerShell) †
$env:http_proxy="http://[ユーザID]:[パスワード]@[ProxyのIPアドレス]:[Proxyのポート番号]"
$env:https_proxy="http://[ユーザID]:[パスワード]@[ProxyのIPアドレス]:[Proxyのポート番号]"
Linux †
wget †
apt †
git †
- .gitconfig に設定がされたのを確認
$ cat .gitconfig