Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

ScalaでHTTPプロキシを作ることにした

リバースプロキシに興味がある……というより、画像が含まれるサイトの表示を効率化したかったので作ってみることにした。

HTTP proxy自体の仕組みは簡単で、ブラウザが本来の通信したいサーバに送られるはずのリクエストを代わりにproxyサーバに送るだけで実現している。ただし、ブラウザが送るリクエスト中のURLは相対パス(/)から絶対パスhttp://example.com/)に変化するが。

仕組みがほぼHTTPサーバだからこれはHTTPサーバになるライブラリを使えばうまく書けそうなのでScala用の軽量WebフレームワークSprayを使うことにした。SprayにはHTTPサーバ/クライアント、が高級低級幅広くモジュール化されて提供されており、いじりやすい設計だ。またSprayの内部はAkkaベースで動いているから既存の知識をある程度使いまわせる。

今日書いたコードはうまく動かなかったが明日ごろには動くようになると思う。公開はその後にする。
★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?