/var/log/study

つまり雑記

webサーバー開発週報 第2週目

前回

yaaamaaaguuu.hatenablog.com

まぁ1週間は続くよね。

進捗

  • 相変わらずstaticなwebサーバー
  • 追加系
    • HEADリクエストに対応した
    • Content-Encodingヘッダーを追加した
    • Last-Modifiedヘッダーを追加した
    • JSONの設定ファイルでallow_hostとportを指定できるようにした
  • 変更系
    • レスポンスの内容がある際はgzipで圧縮するようにした
    • いくつかのメソッドにテストコードを足した
      • HSpec
    • http-dateのフォーマットを多分RFC 1123に準拠させた
  • やりたかったけどできなかった
    • 設定ファイルをhclにできなかった
    • ドキュメントルートも指定できるようにしたかったが未着手

今週の詰まりどころ

  • 型が面倒
    • StringとかByteStringとか, IntとかInt64とか
      • gzipで圧縮することより、内部的な型の方が厄介だった
    • どこかの場面でとても大切なのかもしれないけれど、今のところそこら辺はよしなにやってほしい気持ちの方が大きい
  • 設定ファイルをhclにしたかった
    • Hashicorpのやつ
    • ライブラリはあるけどJSON互換の運用ができるやつでは無かった為に使いかたがパッとはわからなかった
    • というかそもそもJSONのパースも若干面倒

感想

http1.0対応の根幹は結構できてきたと思う。がhaskellっぽいコードか?と問われるとかなり微妙。

そもそも、すごいHaskellとかを挫折してこういう取り組みを行っているので、haskellっぽいコードにならないのは仕方が無いと割り切るしか無い。

HSpecはかなり好きだが、webサーバーとしてテストが網羅できてるかはコレまた怪しい。

そろそろhttp1.0のstaticなwebサーバーは脱却して、少しずつcgiとかに対応できたら良いなぁと思う。