鍍金池/ 問答/Java  C  Linux/ 下面關(guān)于cookie的實驗是正確的嗎

下面關(guān)于cookie的實驗是正確的嗎

下面的實驗可以用簡短的幾句話概括一下原理嗎?目前只知道好像事實就是下面這樣的

服務(wù)器:Tomcat

項目的根目錄的路徑:localhost:8080/project
項目中某個Servlet的路徑:localhost:8080/project/MyCookie

其中路徑localhost:8080/project/MyCookie訪問到的是下面的Servlet:

public class MyCookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");

        Cookie[] cookies = request.getCookies();
        for(int i = 0; cookies != null && i < cookies.length;i++){
            //如果在瀏覽器沒有顯示蝦面的語句,說明沒有獲取到cookie
            response.getWriter().println("可以獲取到cookie  cookies[i].getName():"+cookies[i].getName()+cookies[i].getValue());
        }
    }
}

下面的描述是否是正確的:

1).當?shù)谝淮沃苯釉L問項目的根目錄的時候,Tomcat服務(wù)器會向瀏覽器發(fā)送Cookie,可以在響應(yīng)頭
    中看到類似的消息頭:
 Set-Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023; Path=/project; HttpOnly;

2).當在一定的時間內(nèi)第二次訪問項目的根目錄的時候,此時Tomcat服務(wù)器不會再向瀏覽器
    發(fā)送Cookie,但是,瀏覽器會向服務(wù)器發(fā)送cookie,可以在請求頭中看到:
      Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023

3)移除掉瀏覽器所有的Cookie;

4).當直接訪問項目的具體的Servlet時(也就是直接訪問localhost:8080/project/MyCookie ),
此時,無論訪問此Servlet多少次,都不會獲取到Cookie

5)如果你先訪問項目的根目錄,然后再訪問(4)中的Servlet,
此時這個Servlet就可以獲取到cookie了。
回答
編輯回答
凹凸曼

4 的意思是說獲取到sessionid之后再刪除 然后再訪問 得不到sessionid嗎?

tomcat應(yīng)該是判斷請求中如果有sessionid就繼續(xù)會話 , 沒有的話就new 一個新的session 返回sessionid吧
在瀏覽器把包含sessionid的cookie刪了 , 服務(wù)器應(yīng)該會認為是一個新的會話 返回新的sessionid 和路徑?jīng)]有關(guān)系

2018年7月2日 17:39