異なるクライアントを使用する場合、同じリソースに対する異なる WebDav リソース パス
質問
私は、さまざまなクライアントを使用してシステムの Web DAV 対応ビューをテスト中です。ある特定のクライアントは時々奇妙なことをするようですが、これは予想されることなのでしょうか?
以下のログは、サーブレットへの完全なパスを再び含めることによって、ディレクトリ (webdav で言うところのコレクション) へのパスが何らかの方法でどのように破壊されたかを示しています (最後の行を見てください)。他のすべてのクライアントはこれを行いません。これは主に、そのクライアントのコーディングが不十分で、おそらく壊れているためですか?
[org.eclipse.jetty.util.log] : REQUEST /milton/http:/127.0.0.1/milton/!renamed/ on org.eclipse.jetty.server.nio.SelectChannelConnector$2@59fb21
[org.eclipse.jetty.util.log] : servlet=com.bradmcevoy.http.MiltonServlet-11108810
[org.eclipse.jetty.util.log] : servlet holder=
[org.eclipse.jetty.util.log] : chain=
[com.bradmcevoy.http.HttpManager] : PROPFIND :: http://127.0.0.1:9000/milton/http:/127.0.0.1/milton/!renamed/ - http://127.0.0.1:9000/milton/http:/127.0.0.1/milton/!renamed/
[org.eclipse.jetty.util.log] : RESPONSE /milton/http:/127.0.0.1/milton/!renamed/ 404
クライアントが利用できるようにした応答ログを見ましたが、名前は意味をなすように壊れていませんでした。
/milton/!renamed
そしてそうではありません
/milton/http:/127.0.0.1/milton/!renamed/
解決
それはおそらくクライアントです。- サーバーはスキーム、ホスト、ポート (http://127.0.0.1/9000) を含む完全修飾 URL で応答しているように見えますが、クライアントはそれを相対 URI (href - "/) として扱っています。 milton/abc") を追加し、その情報を先頭に戻します。
href を返す (/milton/abc など) がよく使用されますが、どちらも合法です。
所属していません StackOverflow