GalaxySのChromeからPDFファイルをダウロードする.htmlファイルにて、

「ダウンロードに失敗しました」に関してです。
Webサーバを2つ公開してまして。
両方ともに以下のdownload.html ファイルを置いています。
<a href="test.pdf" target="_blank">pdfリンク</a>

Aサーバでは、まったく問題なくDownloadが完了しますが、
Bサーバでは、「ダウンロードに失敗しました」となってしまいます。

アパッチは両方ともにバージョン 2.0.58 で、httpd.conf内容はほとんど差異はないです。
何が原因でBサーバのPDFダウンロードに失敗するのでしょう?

因みに、PCブラウザ IE6、Firefox6、Chrome14 などでは、両サーバともダウンロードに成功します。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2011/09/30 11:50:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:techmedia-think No.3

回答回数46ベストアンサー獲得回数13

ポイント66pt

BサーバのHTTPS通信で使用している証明書が正式な証明書では無いという認識で良いでしょうか?

正式な証明書で無い場合は、Androidの場合ダウンロードマネージャが正常に動作しないようです。

Androidの既知の問題として取り上げられているみたいです。Issue TrackerのStatusがUnassignedのままなので、Android全般的に修正されていないのではないでしょうか。

http://feather.cocolog-nifty.com/weblog/2010/10/androidwebhttps.html

http://code.google.com/p/android/issues/detail?id=3492

id:gdwtseq

ご返信ありがとうございます



アンドロイド特有の問題であることを大体理解しました。



有意義な情報をありがとうございます。

2011/09/30 11:49:45

その他の回答2件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント68pt

httpd.conf は同じということなので他に違いが出そうなところを思いつくだけ列挙してみます。

  • httpd.conf以外に conf.d/*.conf などインクルードされた設定ファイルでも差異が無いか確認。
  • pdfファイルのあるディレクトリか親ディレクトリに.htaccessファイルがあって、どちらかで特別な設定をしていないか確認。
  • TypesConfig /etc/mime.types で指定されたファイル内容は同じか確認。
  • MIMEMagicFile conf/magic で指定されたファイル内容は同じか確認。
  • 前段にロードバランサやプロキシサーバが無いか確認。もしあるならそこで特殊な設定をしていないか確認。

http://q.hatena.ne.jp/answer

id:gdwtseq

返信遅れました。アドバイスありがとうございます。

挙げていただいた項目の上4つについては、差異はありませんでして、

「・前段にロードバランサやプロキシサーバ」に関しても設置は無いと

認識しております。

因みに、現在、両サーバともソースからインストールしたApache2が動いているのですが、(/usr/local/apache2/bin/httpd を start させています)

Bサーバには、以前パッケージからインストールした形跡が残っているのです。

/etc/httpd/conf.d/ フォルダや、

/etc/httpd/conf/ フォルダが残っています。

しかし、magic,magic.types などのファイルは現在残っておりません。

2011/09/27 01:13:30
id:techmedia-think No.2

回答回数46ベストアンサー獲得回数13

ポイント66pt

ダウンロードに失敗したBサーバのApacheのアクセスログや、エラーログには何も出力されてないのでしょうか?

http://q.hatena.ne.jp/answer

id:gdwtseq

アドバイスありがとうございます。

両サーバの access_log や error_log を調べましたところ、

失敗するBサーバの方では、error_log に、以下のようなステータスコードが出ました。

HTTP/1.1" 401

HTTP/1.1" 200

HTTP/1.1" 401 ( 2秒間おいて、追って表示された )

実は、BサーバはAサーバの開発テスト用サーバでして、.htaccess によりベーシック認証が掛っていました。(汗)

ベーシック認証を外すと、pdf のダウンロードに成功しました。

しかし、もう一つ問題がありまして、

Bサーバには、https: サイトがありまして、そこからのpdfダウンロードをすると、GalaxySでは「データ接続をしていますのでお待ちください...」メッセージのまま、ダウンロードが完了しないのです。

ssl_access_log には、

"GET /pdf/20110926161849.pdf HTTP/1.1" 200 26522

"GET /pdf/20110926161849.pdf HTTP/1.1" 200 26522 "https://test.abc.co.jp/aaa.php" "Mozilla/5.0 (Linux; U; Android 2.2.1; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1" TLSv1 DHE-RSA-AES256-SHA

と表示せれましたが、成功する IE,Chromeのブラウザの場合は、上記のログと同様で HTTPステータスが

IEが 304

Chromeが 200

に表示されます。

BサーバはAサーバと違い、サーバ証明書を発行していないサーバですが、

このことがダウンロードを完了できない原因となり得るでしょうか?



追記:

auの端末 IS05 のアンドロイドブラウザで試したところ、同様にダウンロードが完了しない状況ですが、

iPhone4のSafari で試したら、ダウンロードが完了しました。

Androidブラウザ機能の何が悪いのでしょう?

2011/09/29 17:59:43
id:techmedia-think No.3

回答回数46ベストアンサー獲得回数13ここでベストアンサー

ポイント66pt

BサーバのHTTPS通信で使用している証明書が正式な証明書では無いという認識で良いでしょうか?

正式な証明書で無い場合は、Androidの場合ダウンロードマネージャが正常に動作しないようです。

Androidの既知の問題として取り上げられているみたいです。Issue TrackerのStatusがUnassignedのままなので、Android全般的に修正されていないのではないでしょうか。

http://feather.cocolog-nifty.com/weblog/2010/10/androidwebhttps.html

http://code.google.com/p/android/issues/detail?id=3492

id:gdwtseq

ご返信ありがとうございます



アンドロイド特有の問題であることを大体理解しました。



有意義な情報をありがとうございます。

2011/09/30 11:49:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません