[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00919] Re: URLDRIVEで HTTP を HTTPSにリダイレクトされると変に
- Subject: [FDclone-users:00919] Re: URLDRIVEで HTTP を HTTPSにリダイレクトされると変に
- From: Rikito INAKAZU <riki1017kazu@gmail.com>
- Date: Tue, 7 Sep 2010 23:59:47 +0900
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;d=gmail.com; s=gamma;h=domainkey-signature:received:received:date:from:to:subject:message-id:in-reply-to:references:x-mailer:mime-version:content-type;bh=9k908ofwJDKaMnuTTrNgFKA+1XiMrL2iTIznwoUaPvE=;b=OxUruSJesWofyNg9HrgHX/TtN5g7RCU8C5HLyHDjHpDMk7S7eM6gfPdM87a/+66tZ0Z+gcf890DZveLzTdnYUcFTZSk0E3k03HRw+5Am66Onb2DWc7lDuKanSoB+qKmg0JoWieSlctGHhe6/aDGv31W1oFJj7YnsGVnlDrNZG60=
- Domainkey-signature: a=rsa-sha1; c=nofws;d=gmail.com; s=gamma;h=date:from:to:subject:message-id:in-reply-to:references:x-mailer:mime-version:content-type;b=k+nRMiyS+k5kgSDriY2jxyW6oMA3yjf7HyMZF6y054twAXp4629eyPm9uK1/85fJd8klt3o0AAroTEJH+cazPKs2xdwBq4+Kekn7lbT7ekprOvLZTOOMdZQXJ6of3/7+StO7AYt/tKPe04DaHhjvGN4Q29qtr34a6GAgwemVB6g=
稲員です。
On Mon, 06 Sep 2010 21:34:18 +0900
Takashi SHIRAI <shirai@unixusers.net> wrote:
> で、稲員さんが先に示された patch では、Location: の引数に
> scheme 無しで local path が記述された場合にアクセスに失敗し
> てしまいます。
> 改めて RFC2616 を読み返してみると、そういう場合は
> Location: http:/path/to/local/file
> のように書けとありますが、実際
> Location: /path/to/local/file
> という記述を見かけたことがあるので対応した方が良いかも。
> あーそれ以前に、現状では前者の書式に対応してない様子ですね。
> これはこれでまた考えておきます。
なるほど。こういう Location: は全く考えていませんでした。
> では、どうして引数に書いただけの URL に勝手に access しに
> 行ったかというと、実は http://host/path/* を展開しようとして
> access を試みていた訳です。
> 試しに echo の引数に使ってみると、URL に含まれる wildcard
> をきちんと展開していることが判ると思います。HTTP の場合は一
> 覧許可設定になっている必要がありますけど。
local に立てた FTP/HTTP Server で試してみました。FTP の方は問題
なく展開されているようでしたが、HTTP の方で問題がありました。
HTTP Server として nginx と apache の 2 つで試してみたのですが、
"echo http://localhost/test/nonredir/files/*" に対する展開結果は
それぞれ下のようになります。
nginx:
http://localhost/test/nonredir/files/file1 \
http://localhost/test/nonredir/files/file2 \
http://localhost/test/nonredir/files/file3
apache:
http://localhost/test/nonredir/files/Index
nginx の方は良いのですが、apache の方はおかしな事になっています。
まだソースを追ってはいないのですが HTML の parse に問題があるの
かもしれません。LOG_DIR も apache の時だけおかしいのは同様です。
このテストを行なった時の log を一応添付しておきます。
> さてここで、今後の対策として幾つかの案が考えられるので挙げ
> てみます。どれが適切な解決策でしょうか?みなさんのご意見をお
> 聞かせ下さい。
>
> A.URL 形式に含まれる wildcard は一切展開しない仕様にする。
> 折角なので展開してくれると嬉しいとは思うのですが、特に応用
> 法も思いつかないので、無意味な traffic を回避する意味でも禁
> 止しちゃいましょうか。
>
> B.そもそも wildcard を含まない pathname は parse しない。
> これはまぁ尤もな話なんですが、wildcard を展開しようとして
> directory loop で無限ループに陥らないように、inode リストを
> 作成しようとして stat() を呼んでるんですよね。
> でもやはりおかしな話のようにも思えるので、見直してもいいか
> とは思っています。一番面倒そうな解決法ですけど。
>
> C.現行仕様のまま更に進めて DOSDRIVE に準拠する。
> つまり 1. の仕様を実装してしまえということです。何が嬉しい
> かはちと悩むところではありますし、むしろ今回のように混乱の元
> になりそうな気もしてます。
私見としては C だけは無いと思っています。理由は、
1. URL の展開の為だけにファイルの download が発生してしまう。
あまりにも無意味な traffic であり ISO IMAGE でも置かれてい
た日には尚更。
2. "cp URL ." を wget 等の代用に出来るかというと、実際のところ
は難しい。なぜなら、FDclone の今の動作からすると URL を下降
中に途中で "403 Forbidden" を喰らって終了の公算が高い。
(FTP に限ればそれなりに使えるかもしれませんが)
3. "cp URL ." が出来るなら "cp file URL" も出来てほしいところ
だが、そんな動作はしない。もっとも、それは DOSDRIVE も同じ
ことかもしれませんが。(ですよね?)
といったところです。この中で選ぶとしたら A かなぁ。
> 私の方も、週末に体調を崩して寝込んでましたので、...
夏風邪かなにかでしょうか。私の周りにも夏風邪や熱射病になった人が
何人かいました。まだまだ熱いようですので御自愛下さい。
--
Rikito INAKAZU (稲員力士) <riki1017kazu@gmail.com>[2010/09/07 19:09:58]: stat("/test")
[2010/09/07 19:09:58]: stat("/test/nonredir")
[2010/09/07 19:09:58]: stat("/test/nonredir/files")
[2010/09/07 19:09:58]: opendir("/test/nonredir/files")
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /test/nonredir/files</title>
</head>
<body>
<h1>Index of /test/nonredir/files</h1>
<ul><li><a href="/test/nonredir/"> Parent Directory</a></li>
<li><a href="file1"> file1</a></li>
<li><a href="file2"> file2</a></li>
<li><a href="file3"> file3</a></li>
</ul>
</body></html>[2010/09/07 19:09:43]: stat("/test")
[2010/09/07 19:09:43]: stat("/test/nonredir")
[2010/09/07 19:09:43]: stat("/test/nonredir/files")
[2010/09/07 19:09:44]: opendir("/test/nonredir/files")
<html>
<head><title>Index of /test/nonredir/files/</title></head>
<body bgcolor="white">
<h1>Index of /test/nonredir/files/</h1><hr><pre><a href="../">../</a>
<a href="file1">file1</a> 06-Sep-2010 22:17 6
<a href="file2">file2</a> 06-Sep-2010 22:17 6
<a href="file3">file3</a> 06-Sep-2010 22:17 6
</pre><hr></body>
</html>[2010/09/07 19:09:58]: stat("/test")
--> "HEAD /test/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Date: Tue, 07 Sep 2010 10:09:55 GMT"
<-- "Server: Apache/2.2.16 (FreeBSD) DAV/2 mod_ssl/2.2.16 OpenSSL/0.9.8e"
<-- "Keep-Alive: timeout=5, max=100"
<-- "Connection: Keep-Alive"
<-- "Content-Type: text/html;charset=ISO-8859-1"
<-- ""
[2010/09/07 19:09:58]: stat("/test/nonredir")
--> "HEAD /test/nonredir/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Date: Tue, 07 Sep 2010 10:09:55 GMT"
<-- "Server: Apache/2.2.16 (FreeBSD) DAV/2 mod_ssl/2.2.16 OpenSSL/0.9.8e"
<-- "Keep-Alive: timeout=5, max=100"
<-- "Connection: Keep-Alive"
<-- "Content-Type: text/html;charset=ISO-8859-1"
<-- ""
[2010/09/07 19:09:58]: stat("/test/nonredir/files")
--> "HEAD /test/nonredir/files/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Date: Tue, 07 Sep 2010 10:09:55 GMT"
<-- "Server: Apache/2.2.16 (FreeBSD) DAV/2 mod_ssl/2.2.16 OpenSSL/0.9.8e"
<-- "Keep-Alive: timeout=5, max=100"
<-- "Connection: Keep-Alive"
<-- "Content-Type: text/html;charset=ISO-8859-1"
<-- ""
[2010/09/07 19:09:58]: opendir("/test/nonredir/files")
--> "GET /test/nonredir/files/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Date: Tue, 07 Sep 2010 10:09:55 GMT"
<-- "Server: Apache/2.2.16 (FreeBSD) DAV/2 mod_ssl/2.2.16 OpenSSL/0.9.8e"
<-- "Content-Length: 364"
<-- "Keep-Alive: timeout=5, max=100"
<-- "Connection: Keep-Alive"
<-- "Content-Type: text/html;charset=ISO-8859-1"
<-- ""
<-- (body)
"Index of /test/nonredir/files Parent Directory file1 file2 file3"[2010/09/07 19:09:43]: stat("/test")
--> "HEAD /test/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Server: nginx/0.7.67"
<-- "Date: Tue, 07 Sep 2010 10:09:43 GMT"
<-- "Content-Type: text/html"
<-- "Content-Length: 0"
<-- "Last-Modified: Mon, 06 Sep 2010 22:41:21 GMT"
<-- "Connection: keep-alive"
<-- "Accept-Ranges: bytes"
<-- ""
[2010/09/07 19:09:43]: stat("/test/nonredir")
--> "HEAD /test/nonredir/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Server: nginx/0.7.67"
<-- "Date: Tue, 07 Sep 2010 10:09:43 GMT"
<-- "Content-Type: text/html"
<-- "Content-Length: 151"
<-- "Last-Modified: Fri, 30 Jul 2010 12:37:27 GMT"
<-- "Connection: keep-alive"
<-- "Accept-Ranges: bytes"
<-- ""
[2010/09/07 19:09:43]: stat("/test/nonredir/files")
--> "HEAD /test/nonredir/files/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Server: nginx/0.7.67"
<-- "Date: Tue, 07 Sep 2010 10:09:44 GMT"
<-- "Content-Type: text/html"
<-- "Connection: keep-alive"
<-- ""
[2010/09/07 19:09:44]: opendir("/test/nonredir/files")
--> "GET /test/nonredir/files/ HTTP/1.1"
--> "User-Agent: FDclone/3.00i"
--> "Host: localhost"
--> "Accept: */*"
--> "Connection: Keep-Alive"
--> ""
<-- "HTTP/1.1 200 OK"
<-- "Server: nginx/0.7.67"
<-- "Date: Tue, 07 Sep 2010 10:09:44 GMT"
<-- "Content-Type: text/html"
<-- "Transfer-Encoding: chunked"
<-- "Connection: keep-alive"
<-- ""
<-- (body)
"../"
"file1 06-Sep-2010 22:17 6"
"file2 06-Sep-2010 22:17 6"
"file3 06-Sep-2010 22:17 6"