created: 2020-08-30T09:59:16.000Z
httpリクエスト(v1.0で)のProxy
読書メモ
いままで「プロキシ」というのがhttp標準の技術だってことを知らなかった。httpsの場合だとCONNECTメソッドが出てきたりするがいったんhttp/1.0の場合でメモ
curl
curlだとこんなコマンドでプロキシの情報を含んだリクエストを投げることができる
curl --http1.0 -x http://localhost:18888 http://example.com/helloworld
サーバー側が受け取るリクエスト
サーバ側(localhost:18888)ではこんなリクエストを受け取る
GET http://example.com/helloworld HTTP/1.0
Connection: close
Accept: */*
Proxy-Connection: Keep-Alive
User-Agent: curl/7.64.1
プロキシ情報を含んだリクエストはGET以降のパス部分が、URL全体を指定したものになっている。
/helloworld
ではなくhttp://example.com/helloworld
になる
実装次第
リクエストを受け取ったプロキシサーバは指定されたURLへリクエストを中継して結果をクライアントに返すことが期待される。が、このあたりはプロキシサーバの実装次第なので自分で python http.server とかで立てたサーバにこのようなリクエストを送っても、もちろんプロキシはしてくれない。