DAV対応メモ

DAVで色々なクライアントに対応するためのメモ。

MS-Author-Via
MS-Author-Via: DAVというヘッダを送らないと、WindowsのDAVクライアントが誤動作することがある。Apacheではmod_headersで設定出来る。
エンコーディング
PUTする時ファイル名はURLとして渡されるので、必ずしも決まった文字コードではない。何らかの自動判別機構を組み込むかクライアントごとにエンコーディングを判別するしかない。Apacheではmod_encodingで対応出来る。
ユーザー名の正規化
XPのDAVクライアントが非SSL/Port80のDAVにアクセスする際、ユーザー名を(コンピュータ名)\(ユーザー名)という名前に勝手に変えて送信してしまう。なのでDAV側でコンピュータ名の部分を捨てる必要がある。Apacheではmod_encoding: NormalizeUsernameで対応できる。
OPTIONSへの対応
XPのDAVクライアントはOPTIONSでDAVかどうかをチェックする。このときにDigest認証をかけていると、何故かパスワードの入力を求められる前に失敗してしまう。なのでOPTIONSには認証をかけてはならない。ApacheではLimitExcept OPTIONSで対応可能。

まとめると、WindowsのDAVクライアントの実装は駄目ということですね。