ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【WebOTX Application Server】HTTP Rangeリクエストを利用して巨大ファイルをダウンロードする際の注意点(OTX-FAQ-000861)

質問内容

Webシステムにおいて、HTTP Rangeリクエストを利用してファイルをダウンロードして開くWebアプリケーションを実行しました。この時、ファイルのダウンロードに失敗する事があります。理由は何でしょうか?

回答内容

 HTTP Rangeリクエストでは、クライアント(Webブラウザ)がRangeヘッダにより、分割サイズと分割数を指定してリクエストします。WebOTX ASはそのヘッダに対応して要求されたコンテンツを分割送信しますが、分割数には既定値で最大10個という上限があります。
 分割数は次のように指定されます。
  Range: bytes=16-19, 8815-26038, ...

 分割数の上限を超えている場合はクライアントに403エラーが返却されます。また、アクセスログにHTTPステータスコード206(HTTP Rangeリクエストを意味するコード)と403(アクセス権なし)が以下のようにセットで記録されますので該当リクエストを確認してください。
 [DD/MMM/2017:HH:MM:SS +0900] "GET /examples/abcd HTTP/1.1" 206 xxxx x
  ・・・
 [DD/MMM/2017:HH:MM:SS +0900] "GET /examples/abcd HTTP/1.1" 206 xxxx xx
 [DD/MMM/2017:HH:MM:SS +0900] "GET /examples/abcd HTTP/1.1" 403 xxx xx

 分割数の上限を超えている場合は、次のようにmaxHeaderRangeItemsパラメータで必要な分割数に拡張してください。ただし、分割数はアプリケーションやブラウザ上で動作するツールがリクエストに設定するRangeヘッダの分割数を確認し、大き過ぎない値を設定してください。

1. ドメインを停止します

2. 次のファイルを開きます
{ドメインディレクトリ}/config/default-web.xml
  ※Webアプリケーション内のweb.xmlに指定してもかまいません。

3. パラメータ maxHeaderRangeItems を追加します(★部分)。
値は分割個数です。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
★ <init-param>
★ <param-name>maxHeaderRangeItems</param-name>
★ <param-value>30</param-value>
★ </init-param>
<load-on-startup>1</load-on-startup>
</servlet>


【対象製品】Application Server
【確認済みのバージョン】すべて
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】Webコンテナ
【カテゴリー】運用/設定

製品名カテゴリ

WebOTX
WebOTX Application Server

  • コンテンツID: 3150113191
  • 公開日: 2017年11月29日
  • 最終更新日:2017年11月29日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。