- PR -

URLのセッションIDを短くするには?

1
投稿者投稿内容
pinetree
会議室デビュー日: 2002/05/22
投稿数: 4
投稿日時: 2002-05-22 18:12
初めて投稿させていただきます、pinetreeと申します。

下記の環境にてServlet/JSPによるWEBページを作成しています。

Solaris 2.6
Tomcat 4.0.3
J2SE 1.4.0

ブラウザのキャッシュにアクセスできない場合、セッションIDは
URLに埋め込まれますが、このセッションIDの長さを短く設定
する方法がわかりません。Tomcatでは無理なのでしょうか?

もし、どなたか設定方法をご存知の方がいましたら、
教えていただけないでしょうか。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-05-22 19:41
Tomcat では、というより、どんなエンジンでもむりでは。
jsessionidはコンテナがセッションIDとして使えるものを生成するわけで、
できるだけセキュアに、そして効率よくなるよう設計されてるんじゃないですかね。

まぁ、セキュアを犠牲にして自前で実装しちゃうという方法もなきにしもあらずですが。
# もしくはTomcatのソースをいじるか:b
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2002-05-23 10:50
>Tomcat では、というより、どんなエンジンでもむりでは。
WebLogicでは設定可能ですね。
Weblogic.xmlで、以下のように指定することにより、8バイトにまで短縮することが可能です。
<session-descriptor>
<session-param>
<param-name>IDLength</param-name>
<param-value>8</param-value>
</session-param>
</session-descriptor>

ですが、これはもともとWebLogicのセションIDの長さのディフォルト値が、かなり長い(52バイト)ため、
必要になった機能といえます。携帯ブラウザなどでURLにセッションIDを連結する形のセション維持
メカニズムを採用する場合などには確かに深刻な問題になりますね。

話しをTomcatに戻しますと、Tomcatでは該当する機能は実装されていないと思います。
Tomcat4.0では、確か32バイト固定のセッションIDですね。これはTomcat3.xの、10バイトに
比べるとかなり長くなったといわざるを得ません。

そこで、Tomcatで短いセションIDを必要とするのであれば、
●可能ならば利用するTomcatをダウングレードする(3.3など)
●Tomcatを改造する(ただし、LDワーカなどにも影響があるので慎重に・・・)
●自前のセション管理を実装する(短いセションIDを発行して、セションオブジェクトにマップするなど)
といった対処策が考えられます。

K.Nakagome
pinetree
会議室デビュー日: 2002/05/22
投稿数: 4
投稿日時: 2002-05-24 15:22
しょむさん、nakagomeさん、回答ありがとうございます。
どうやらTomcatでは無理、というのが結論のようですね。

私は携帯電話向けのページも作成していますが、携帯電話の
場合、1ページあたりの受信データ量や、URLの最大長に制限
があるので、セッションIDがもう少し短くならないかな、と
思ったのです。

Tomcatの改造は私には無理のようなので、他の部分で工夫して、
なるべくURL長を抑えるようにしたいと思います。
時間があれば、自前のセッション管理の実装にもチャレンジ
してみたいと思います。

アドバイスどうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)