タグ

ブックマーク / qiita.com/mechamogera (2)

  • Rack::Request#hostがX-Forwarded-Hostの最後のプロキシホストを返す理由 - Qiita

    client ---> proxy1 ---> proxy2 ---> rails app ※ proxy1/2はX-Forwarded-Host設定 上記のような環境ではrailsにX-Forwarded-Hostで"proxy1, proxy2"なリクエストが届く。 railsでrequest.hostするとproxy2のホスト名が返される。 1.6.0.alphaの該当ソースでは以下のようになっていてX-Forwarded-Hostの最後をとってくるようになっている。 なぜ最後を返してくるのか、最初では駄目なのかを調べてみた。 def host # Remove port number. host_with_port.to_s.sub(/:\d+\z/, '') end def host_with_port if forwarded = @env["HTTP_X_FORWARDED_

    Rack::Request#hostがX-Forwarded-Hostの最後のプロキシホストを返す理由 - Qiita
    yyamano
    yyamano 2015/03/16
  • Rack::RequestでHTTPリクエストヘッダ一覧を書き出す - Qiita

    Sinatraとかでいつも忘れるのでメモ Rack::Requestのenvの仕様は以下のような感じになる RackのEnvironmentによるとHTTP_で始まる値がHTTPリクエストヘッダ 形式としてはRFC 3875 - The Common Gateway Interface (CGI) Version 1.1に準拠している HTTP ヘッダフィールド名が大文字に変換され、存在する全ての - が _ に置換され、先頭に HTTP_ が与えられる なので、以下のような感じでダンプ出来る(人間がわかれば良ければ1行目をpするだけでも良さそう) http_headers = request.env.select { |k, v| k.start_with?('HTTP_') } headers = http_headers.inject({}) do |a, (k, v)| a[k.s

    Rack::RequestでHTTPリクエストヘッダ一覧を書き出す - Qiita
    yyamano
    yyamano 2014/10/21
    “RackのEnvironmentによるとHTTP_で始まる値がHTTPリクエストヘッダ” "形式としてはRFC 3875 - The Common Gateway Interface (CGI) Version 1.1に準拠している"
  • 1