<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    jsessionid 問題分析

    Posted on 2011-09-02 16:33 瘋狂 閱讀(19298) 評(píng)論(2)  編輯  收藏 所屬分類: webapache項(xiàng)目方法論架構(gòu)

    這幾天為了測(cè)試人員測(cè)試,就把一個(gè)tomcat應(yīng)用整個(gè)拷貝了一份,改了下端口一個(gè)8080,一個(gè)8081,上下文也一樣,結(jié)果出問題了:頁(yè)面登陸驗(yàn)證碼死活驗(yàn)證不過去,最后跟蹤了下后臺(tái)發(fā)現(xiàn),登陸界面請(qǐng)求時(shí)生成驗(yàn)證碼并將驗(yàn)證碼放入session里面,這個(gè)sessionid和驗(yàn)證時(shí)從獲取驗(yàn)證碼的session的的id不一樣,那驗(yàn)證的時(shí)候由于session不一樣,獲取驗(yàn)證碼肯定為空,最終驗(yàn)證失敗。

     

    根據(jù)一般的流程,瀏覽器首次發(fā)出請(qǐng)求的時(shí)候服務(wù)端會(huì)在response信息里面給出:

    Set-Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1; Path=/test (這里假設(shè)服務(wù)器生成的sessionid0000yLsny8JFy4nLxDelrrq9Lx1,應(yīng)用上下文為test)要求瀏覽器設(shè)置瀏覽器會(huì)話cookie,下次請(qǐng)求的時(shí)候在request頭信息里面附帶:

    Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1 服務(wù)器以此來判斷是否統(tǒng)一客戶端發(fā)出的請(qǐng)求。

     

    而跟蹤我們的應(yīng)用發(fā)現(xiàn)第一次瀏覽器發(fā)出請(qǐng)求后,服務(wù)端response信息為:

    Set-CookieJSESSIONID=C7A2EB23B029226E6279448D1CFD6207; Path=/test

    第二次發(fā)出請(qǐng)求的時(shí)候整個(gè)會(huì)話信息為:

    響應(yīng)頭信息原始頭信息:

    Set-Cookie JSESSIONID=AD54301B809A7D7BBF909F10B4C838AA; Path=/test

    請(qǐng)求頭信息原始頭信息:

    Cookie    JSESSIONID=4DF629829C6E18953117AB66777ED2CA

     

    瀏覽器雖然第二次請(qǐng)求帶過去的JSESSIONID并不是第一次設(shè)置(C7A2EB23B029226E6279448D1CFD6207),并且服務(wù)端又發(fā)出了新的Set-Cookie命令和JSESSIONID

     

    最終才想起還有另一個(gè)tomcat應(yīng)用的copy修改了本次的cookie session 里面的JSESSIONID值,

    正好跟蹤到信息為:

    Set-Cookie      JSESSIONID=4DF629829C6E18953117AB66777ED2CA; Path=/test (這一次請(qǐng)求影響)

    Cookie    JSESSIONID=C7A2EB23B029226E6279448D1CFD6207(原應(yīng)用的JSESSIONID)

     

    通過查看火狐瀏覽器里面兩個(gè)應(yīng)用在同一個(gè)主機(jī)(localhost)下面只存了一份名為JSESSIONIDcookie值,結(jié)果導(dǎo)致互相影響。
     
     

    現(xiàn)在tomcat下的一個(gè)辦法就是兩個(gè)應(yīng)用其中一個(gè)修改下上下文,例如一個(gè)是test,另一個(gè)是test1 ,這樣由于cookie的路徑(path)在同一個(gè)級(jí)別下名稱不一樣將不會(huì)互相影響。

    瀏覽器判斷cookie的應(yīng)該根據(jù)主機(jī),路徑,名稱來判斷,通常根據(jù)目錄層級(jí)不同作用域也不同,例如:

    比如瀏覽器現(xiàn)有三個(gè)cookie, path分別為 "/", "/test", "/test/mgr"

    則請(qǐng)求 "/test/other/action.do"時(shí),第1個(gè)cookie和第2個(gè)cookie會(huì)被發(fā)給服務(wù)端,第三個(gè)不會(huì)。

    此時(shí)瀏覽器請(qǐng)求頭信息里面的session有可能為多個(gè),但名稱都一樣如:

    Cookie: JSESSIONID=8810E51861891187708C53A1805951A1;JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1

    這個(gè)時(shí)候也是出現(xiàn)問題的時(shí)候,服務(wù)器有可能出現(xiàn)jsessionid不一致的情況,

    一個(gè)明顯的問題在websphere下由于默認(rèn)的cookie session的path為/ 如圖:

    這個(gè)時(shí)候如果同一臺(tái)主機(jī)或者ip下部署其他應(yīng)用,如果都是用JSESSIONID作為key的話,由于/的作用域大,其他的應(yīng)用將受到影響,首先websphere自己會(huì)受到影響,經(jīng)過測(cè)試websphere的每一次請(qǐng)求如下:

    Set-Cookie: JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1; Path=/

    然后后面多次出現(xiàn)信息如下:

    相應(yīng)

    Set-Cookie: JSESSIONID= 0000IsxSqg75ELW4C0Y3YCaRgab:-1; Path=/

    請(qǐng)求

    Cookie:

    JSESSIONID=8810E51861891187708C53A1805951A1(這個(gè)為tomcat的);JSESSIONID=0000yLsny8JFy4nLxDelrrq9Lx1:-1

     

    遇到這種異常情況,請(qǐng)大家從cookie的domain,path,作用域的知識(shí)分析下,然后就應(yīng)該能解決這些問題了,適當(dāng)?shù)男薷南耤ookie的key名稱,和path。

     

    這里給看下百度的明顯和其他的不一樣用的是(baiduid作為key):

     

     

     

    ~~

     

     


    評(píng)論

    # re: jsessionid 問題分析  回復(fù)  更多評(píng)論   

    2011-09-11 21:09 by DB Compare Tool
    拷貝tomcat當(dāng)然也要清干凈啊

    # re: jsessionid 問題分析  回復(fù)  更多評(píng)論   

    2011-09-13 09:33 by @joe
    @DB Compare Tool
    這不是清不清干凈的問題吧
    主站蜘蛛池模板: 亚洲AV无码国产剧情| 亚洲成a人片在线观看中文!!!| 国产亚洲精品a在线观看| 亚洲精品V欧洲精品V日韩精品 | 亚洲AV日韩精品一区二区三区| 亚洲精品无码专区久久同性男| 亚洲愉拍99热成人精品热久久 | 亚洲国产成人久久精品软件| 四虎成人精品国产永久免费无码| 99在线视频免费观看| 99爱在线精品视频免费观看9| 我想看一级毛片免费的| 亚洲成a人片在线播放| 色婷婷六月亚洲婷婷丁香| 97久久国产亚洲精品超碰热| 男女猛烈无遮掩视频免费软件| 黄网站免费在线观看| 最新仑乱免费视频| 中文亚洲成a人片在线观看| 亚洲婷婷天堂在线综合| 猫咪www免费人成网站| **真实毛片免费观看| 又爽又黄无遮挡高清免费视频| 亚洲人JIZZ日本人| 亚洲日韩一区二区三区| 久久免费国产精品| 欧美在线看片A免费观看| 久久久精品国产亚洲成人满18免费网站| 亚洲国产老鸭窝一区二区三区 | 亚洲人成7777影视在线观看| 无套内谢孕妇毛片免费看看| 8x网站免费入口在线观看| 国产在线ts人妖免费视频| 亚洲精品在线观看视频| 污视频网站在线观看免费| 98精品全国免费观看视频| 成人亚洲网站www在线观看| 亚洲自偷自拍另类图片二区| 日本视频免费观看| 一色屋成人免费精品网站| 色噜噜AV亚洲色一区二区|