appengine では、index.html は静的ファイルとして提供されますか、それとも最初に関与するサーブレット コンテナがありますか? たとえば、blabla.com のホストである war/index.html があり、ユーザーが http:/blbla.com/
にアクセスするとします。サーブレット コンテナーが最初にヒットして、それが welocme の一部であることを確認する必要はありません。 -file-list が web.xml で構成されている場合にのみ、appengine はそれを静的ファイルとして提供します。サーバーのラウンドトリップを回避する唯一の方法は、ユーザーに URL http://blabla.com/index.htmlをヒットさせることですか?
ドキュメントhttps://developers.google.com/appengine/docs/java/gettingstarted/staticfilesによると、次のように言う:
By default, App Engine makes all files in the WAR available as static files except JSPs and files in WEB-INF/. Any request for a URL whose path matches a static file serves the file directly to the browser—even if the path also matches a servlet or filter mapping.
それでは、質問: 次のうちどれが正しいですか?ユーザーはhttp://blabla.comにアクセスします
- appengine は、index.html を静的ファイルとして直接提供する必要があることを認識しており、私のサーブレット コンテナは、welcome-files-list をチェックする必要がありません。
- appengine は、静的ファイルから index.html を提供する必要があることを認識していません。サーブレット コンテナーは、welcome-files-list をチェックするためだけにヒットし、appengine がそれを静的ファイルとして取得できるようにします。
2 の場合: html ファイルを静的ファイルとして提供する唯一の方法は、ユーザーに URL で直接ヒットさせることです。つまり、http://blabla.com/index.html ? これは非常に重要な瞬間です。これは、サーブレット コンテナーが、リクエストのたびにwelcome-files-list を解決する追加のジョブを実行している可能性があることを意味し、その結果、ユーザーが html ファイルへの直接パスを指定した場合に回避できる CPU の浪費が発生する可能性があることを意味します。