メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2011年3月12日土曜日

[Apache][mod_chxj] POST時微妙

POST時の動きが微妙なんだけど
クライアント側から送付された文字コードを変換したいからなんだよね・・・

header_fixup時にContent-Lengthを決めないといけないっぽいんだけど
そうするとPOSTデータはどっから持ってくるんだろう・・・

input filter側でPOSTデータは読めるんだけどそうすると
Content-Lengthを変更できないっぽい。

だもんでinput_filterは止めて、input_handlerで処理するように
し、serf使ってローカルに対してPOSTするようにしてる。 

1.3の時には変更(していいかどうかは別にして)できたんだけど、
2.xではできないみたい。(もっともっと調査必要)

なんだか、そもそも勘違いしていそうな気もするんだけど。

メーリングリストなんかでも、POSTデータを変更したい人はいるようで
質問投げてるみたいなんだけど、「何でそんなこと必要なのか」で終わっちゃっている。。。

えー。。。

。。。

。。



--
追記

apache付属のmod_charset_liteのinput filter部にも書いてあった。


A Content-Length header is present, but it won't be valid after
conversion because we're not converting between two single-byte
charsets. This will affect most CGI scripts and may affect
some modules.
Content-Length can't be unset here because that would break
being able to read the request body.
Processing of chunked request bodies is not impacted by this
filter since the the length was not declared anyway.
 

ま、無理やりセットしてもinput filterの時点では有効にならないようなんだけど。


ということから、やはり

1) Content-Lengthは無視する
2) 内部から外部リクエスト投げる
  

の2つぐらいしか解決策は思いつかない

.

0 コメント: