異なるクライアントを使用する場合、同じリソースに対する異なる WebDav リソース パス

StackOverflow https://stackoverflow.com/questions/3767634

  •  04-10-2019
  •  | 
  •  

質問

私は、さまざまなクライアントを使用してシステムの 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 など) がよく使用されますが、どちらも合法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top