Socks プロキシ

SOCKSプロキシとHTTPプロキシの違いについて勉強してみた ちょっと話題の記事 パケットを眺めながらSOCKSプロキシとHTTPプロキシの違いについて勉強してみました。 はじめに サーバーレス開発部@大阪の岩田です。 先日接続元IPアドレスをクラスメソッドのGIPに制限した検証環境を利用してAPIのテストを行なっていたところ、リモートワーク中のメンバーが検証環境に接続できないという状況が発生しました。 下記の記事で紹介されているように、クラスメソッドではSOCKSサーバーが構築されているので、VPN経由で社内NWに接続し、SOCKSサーバーをプロキシとして利用すれば本来リモート環境からでも検証環境が利用できるはずです。 VPN利用者のためにdelegateでSOCKSサーバーを立ててみました 最初はcurlコマンドのオプションに–proxyを付けてプロキシサーバーを指定するようお願いしたのですが、–proxy ような指定を行なっていたようで、問題が解決しませんでした。 結局–proxy socks5のように指定してもらうことで解決したのですが、よく考えたらSOCKSプロキシについて何も知らなかったので、勉強のためにHTTPプロキシとの違いについて調査してみました。 HTTPプロキシとは まずHTTPプロキシについてのおさらいです。 プロキシとはHTTPなどの通信を中継するための仕組みで、クライアントとサーバーの通信経路の間で 通信内容を転送する 通信内容を改変して転送する サーバーの代わりにクライアントに応答する といった処理を行います。 HTTP/1. 1ではプロキシを下記のように定義しており、リクエスト・レスポンスの改変を行わないプロキシは透過プロキシ、リクエスト・レスポンスの改変を行うプロキシは非透過プロキシと呼ばれます。 An intermediary program which acts as both a server and a client for the purpose of making requests on behalf of other clients. Requests are serviced internally or by […]