http_cookie와_톰캣_버전별_이슈

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
http_cookie와_톰캣_버전별_이슈 [2019/06/12 06:22] – [RFC 6265, RFC 2109의 쿠키 차이.] koovhttp_cookie와_톰캣_버전별_이슈 [2020/11/27 11:36] (현재) koov
줄 10: 줄 10:
 ==== 쿠키의 목적 ==== ==== 쿠키의 목적 ====
 === 세션 관리 (로그인) === === 세션 관리 (로그인) ===
-  * 쿠키는 웹사이트의 장바구니 기능 때문에 도입되었습니다.[[https://en.wikipedia.org/wiki/HTTP_cookie#History|1]][[http://web.archive.org/web/20020803110822/http://wp.netscape.com/newsref/std/cookie_spec.html|2]] (요즘에는 서버 DB에 저장합니다.) +  * 쿠키는 웹사이트의 장바구니 기능 때문에 도입되었습니다. [[https://en.wikipedia.org/wiki/HTTP_cookie#History|1]][[http://web.archive.org/web/20020803110822/http://wp.netscape.com/newsref/std/cookie_spec.html|2]] (요즘에는 서버 DB에 저장합니다.) 
-  * 쿠키에 UID(고유식별자)를 넣어 사용자가 새 페이지를 방문해도 장바구니를 보여줄 수 있습니다.\ +  * 쿠키에 UID(고유식별자)를 넣어 사용자가 새 페이지를 방문해도 장바구니를 보여줄 수 있습니다. 
-  * 이를 이용해 로그인 페이지를 방문하면 사용자에게 UID가 포함된 쿠키를 생성하고 사용자에게 서비스를 제공합니다{{ :was:tomcat:1.png |}}↓ 로그인 후{{ :was:tomcat:2.png |}}+  * 이를 이용해 로그인 페이지를 방문하면 사용자에게 UID가 포함된 쿠키를 생성하고 사용자에게 서비스를 제공합니다 
 + 
 +{{:was:tomcat:1.png}} 
 + 
 +↓ 로그인 후 
 + 
 +{{:was:tomcat:2.png}}
  
 === 개인화 (검색 결과 설정, 테마 등) === === 개인화 (검색 결과 설정, 테마 등) ===
   * 사용자에게 컨텐츠를 보여주기 위한 정보를 기억하기 위해 사용될 수 있습니다.   * 사용자에게 컨텐츠를 보여주기 위한 정보를 기억하기 위해 사용될 수 있습니다.
-  * 예를 들면 ''구글 검색 결과를 몇 개씩 보여줄 건가'', ''duckduckgo 사이트의 사용자 테마''와 같은 설정 등이 있습니다.{{ :was:tomcat:3.png |}}+  * 예를 들면 ''구글 검색 결과를 몇 개씩 보여줄 건가'', ''duckduckgo 사이트의 사용자 테마''와 같은 설정 등이 있습니다. 
 + 
 +{{:was:tomcat:3.png}}
  
 === 트래킹 (사용자 행동) === === 트래킹 (사용자 행동) ===
줄 155: 줄 163:
   * ''Expires''는 ''Date'' 값을 가지고 있으며 이 날짜가 지나면 쿠키를 버리고, ''HttpOnly''는 비HTTP 요청을 막습니다. (클라이언트가 API로 접근하는 행위 등)   * ''Expires''는 ''Date'' 값을 가지고 있으며 이 날짜가 지나면 쿠키를 버리고, ''HttpOnly''는 비HTTP 요청을 막습니다. (클라이언트가 API로 접근하는 행위 등)
   * 구현 시 고려 사항에 관한 점 또한 변경되었습니다.   * 구현 시 고려 사항에 관한 점 또한 변경되었습니다.
-    * ''RFC 2109''는 유저 에이전트가 ''최소 300개''의 쿠키, 쿠키마다 적어도 ''4096바이트'', ''한 호스트나 도메인'' 마다 최소 ''20개''를 지원해야 한다고 명시했습니다. {{:was:tomcat:5.png|}} +    * ''RFC 2109''는 유저 에이전트가 ''최소 300개''의 쿠키, 쿠키마다 적어도 ''4096바이트'', ''한 호스트나 도메인'' 마다 최소 ''20개''를 지원해야 한다고 명시했습니다. 
-    * ''RFC 6265''는 유저 에이전트가 ''최소 3000개''의 쿠키, 쿠키마다 적어도 ''4096바이트'', ''도메인당 최소 50개''의 쿠키를 저장 가능해야 한다고 명시했습니다. {{:was:tomcat:6.png|}}+{{:was:tomcat:5.png}} 
 +    * ''RFC 6265''는 유저 에이전트가 ''최소 3000개''의 쿠키, 쿠키마다 적어도 ''4096바이트'', ''도메인당 최소 50개''의 쿠키를 저장 가능해야 한다고 명시했습니다. 
 +{{:was:tomcat:6.png}}
     * 또한 ''RFC 6265''는 속성이름과 세미콜론 사이에 공백이 필요하고 특수 문자가 있는 경우를 제외하면 속성 값을 ''""''로 감싸지 않습니다.     * 또한 ''RFC 6265''는 속성이름과 세미콜론 사이에 공백이 필요하고 특수 문자가 있는 경우를 제외하면 속성 값을 ''""''로 감싸지 않습니다.
     * ''RFC 6265''는 유저 에이전트가 ''Set-Cookie'' 헤더를 어떻게 처리해야 하는지 알고리즘을 제공합니다.     * ''RFC 6265''는 유저 에이전트가 ''Set-Cookie'' 헤더를 어떻게 처리해야 하는지 알고리즘을 제공합니다.
줄 212: 줄 222:
  
   * maxAge를 정하면 자동으로 Expires가 정해집니다.   * maxAge를 정하면 자동으로 Expires가 정해집니다.
-    * {{:was:tomcat:7.png|}}+{{:was:tomcat:7.png}}
  
 ===== 톰캣 6.0~8.5 버전별 쿠키 이슈. ===== ===== 톰캣 6.0~8.5 버전별 쿠키 이슈. =====
줄 245: 줄 255:
   * https://bz.apache.org/bugzilla/show_bug.cgi?id=57896   * https://bz.apache.org/bugzilla/show_bug.cgi?id=57896
   * 재현 방법   * 재현 방법
-    * 스크린샷같이 쿠키를 생성합니다.{{ :was:tomcat:8.png |}} +    * 스크린샷같이 쿠키를 생성합니다. 
-    * 페이지를 재방문하면 헤더 값이 손상됩니다.{{ :was:tomcat:9.png |}}+{{:was:tomcat:8.png}} 
 +    * 페이지를 재방문하면 헤더 값이 손상됩니다. 
 +{{:was:tomcat:9.png}}
   * 해결 방법   * 해결 방법
     * 6.0.45로 업데이트합니다.     * 6.0.45로 업데이트합니다.
줄 379: 줄 391:
           makeCookie(response, "CookieName6", "[Bracket]");           makeCookie(response, "CookieName6", "[Bracket]");
 </code> </code>
-</WRAP>↓ 결과{{ :was:tomcat:22.png |}} +</WRAP> 
-      * Tomcat 7 이상{{ :was:tomcat:23.png |}}+ 
 +↓ 결과 
 + 
 +{{:was:tomcat:22.png}} 
 + 
 +  * Tomcat 7 이상 
 +{{:was:tomcat:23.png}} 
   * 해결 방법   * 해결 방법
-    * URLEncoder.encode를 사용하여 저장합니다. (값을 읽을 때 Decoding이 필요합니다.){{ :was:tomcat:24.png |}}+  * URLEncoder.encode를 사용하여 저장합니다. (값을 읽을 때 Decoding이 필요합니다.) 
 +{{:was:tomcat:24.png}}
  
 ===== 출처 ===== ===== 출처 =====
  • http_cookie와_톰캣_버전별_이슈.1560320572.txt.gz
  • 마지막으로 수정됨: 2019/06/12 06:22
  • 저자 koov