<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
    這不是清不清干凈的問題吧
    主站蜘蛛池模板: 2020亚洲男人天堂精品| 精品亚洲456在线播放| 99热精品在线免费观看| 亚洲mv国产精品mv日本mv| 日本免费一区二区三区最新vr| 美女的胸又黄又www网站免费| 久热综合在线亚洲精品| 免费A级毛片无码无遮挡内射| 日本免费精品一区二区三区| 99久久亚洲综合精品成人网| 特级淫片国产免费高清视频| 免费观看一区二区三区| 亚洲乱码日产精品一二三| 亚洲精品白浆高清久久久久久| 在线观看视频免费完整版| 久久免费观看视频| 亚洲乱码一二三四区乱码| 亚洲熟妇无码八AV在线播放| 最近中文字幕mv免费高清电影| 国产一区二区三区免费观看在线| 亚洲人成欧美中文字幕| 无码专区—VA亚洲V天堂| 免费国产在线观看老王影院| 久久w5ww成w人免费| h片在线观看免费| 亚洲日本va一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 国产精品久免费的黄网站| 国产精品永久免费10000| 在线毛片片免费观看| 羞羞视频在线观看免费| 亚洲依依成人亚洲社区| 97se亚洲综合在线| 国产精品亚洲一区二区三区在线 | 国产91久久久久久久免费| 18禁美女黄网站色大片免费观看| 亚美影视免费在线观看 | 青草草色A免费观看在线| 日韩av无码免费播放| 日韩在线观看视频免费| 亚洲国产精品无码中文lv|