Java(Tomcat):静的コンテンツを提供するようにCookielessサブドメインを構成する方法
-
04-10-2019 - |
質問
GoogleとYahoo!の両方で与えられたヒントの1つWebページの読み込みをスピードアップすることは、Cookielessサブドメインをサーバーの静的コンテンツに構成することです。
スタンドアロンモードでTomcatを使用して「Cookielessサブドメイン」をどのように構成しますか(この質問は、Apacheを使用してCookieless-Wayで静的コンテンツを提供する方法ではなく、Tomcat-Standaloneモードでそれを行う方法についてです)。
サポートするフィルターは気にしないことに注意してください If-Modified-Since
GZIPPINGをサポートするフィルターについては気にしません。私が提供している静的コンテンツは永遠にキャッシュ可能です(またはその名前は変更されます)、すでに圧縮データです(GZIPは転送を遅くするだけです)。
2つの異なるTomcat WebAppsが必要ですか? (1つの「Cookiefull」と1つの「Cookieless」)
2つの異なるサーブレットが必要ですか? (今のところ、ディスパッチャー/コントローラーサーブレットは1つだけです)。
「通常の」リンクは、たとえば、それがメインのWebAppと同じドメインにあるときにCookiefullの方法で呼び出され、サブドメイン上にあるときに「Cookie-Less」方法で呼ばれるのですか?
何が起こっているのか正確にはわかりません。クエリにCookieを追加するかどうかを決定するのはブラウザですか?もしそうなら、なぜ「Cookieless」サブドメインの静的クエリにCookieを追加しないのでしょうか。
舞台裏で何が起こっているのかについての例は大歓迎です:)
解決
別のドメインをセットアップするだけです。同じWebAppsを指すことができます。この新しいドメインにCookieをドロップしないようにしてください。
たとえば、メインサイトはそうです
www.example.com
そして、別のドメインを持つことができます
static.example.com
クッキーレスの静的リソース用。彼らは同じホストを指して、同じサーブレットに行くことができます。アプリで、これらの静的なコンテンツのCookieをドロップしないことを確認する必要があります。
編集:静的コンテンツがTomcatのデフォルトサーブレットによって提供されると仮定すると、何もする必要はありません。それはあなたのためにクッキーをドロップしないので、あなたの新しいドメインはクッキー無料でなければなりません。
同じサーブレットで静的コンテンツを処理する必要がある場合は、このようなことをすることができます。
if (!request.getServerName().equals("static.example.com")) {
// Drop cookie
}
この例では、ルートドメイン(.example.com)にCookieをドロップしないことを前提としています。それを行う場合は、Examplecdn.comのような別のドメインを取得する必要があります。
他のヒント
これについてここに投稿しました: url/subdomain rewrites(htaccess)
クッキーのないサブドメインを実装し、wwwのベースURLを持っている場合、あなたはそれを後方に持っている(または私がそうするかもしれない)と思うかもしれません(または私がそうするかもしれません)。この場合、少なくともCookieはwwwに設定されています。たとえば、主要なCookieセッターはGoogle Analyticsです。したがって、私のサイトにスクリプトを設定するときは、次のようになります。
`var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'analytics-acc-#],
['_setDomainName', '[
www.valpocreative.com2'],
['_trackPageview']);
`
ここでは、メインドメインをwwwに設定していることがわかります。私の場合、私が間違っている場合は修正します。wwwをwwwサブドメイン以外でリダイレクトする必要があります。これはまた、私のcpanel(cname = "cdn"をwww.domain.comを指しているcnameセットアップでもあります。