이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
아파치 톰켓
- http://tomcat.apache.org/ 톰켓 8.0.x 를 사용하다 톰켓 9 가 어떻게 달라졌는지 궁금해서.. 아직 알파버전이지만 깔아봤습니다. 필자가 느끼는 점은.. 톰켓의 릴리즈 기준으로 마이너가 10이하 버전들은 뭔가 불안정한데.. 특히 세션쪽이 이상한 경우가 많습니다. 즉, 실무에서는 최소 마이너버전이 10을 넘어 갔을때 바꾸시는걸 추천합니다. 심지어 알파버전이라 엄청 심각할거라고 생각하고 깔아봤는데…. 이번엔 쿠키에서 문제점 2개를 찾았습니다.
사실 알파버전상 문제점이라고 생각하고 넘어가려다가 구글링해보니 앞으로도 고칠 생각이 없다는 글을 보고 업데이트 주의사항을 작성하게 되었습니다. (하지만 해당 버그리포트 주소를 까먹었다는게… 함정입니다…; 하하하하…)
이 주의사항은 톰켓 8.0.x -> 9.x 로 업데이트시 문제점을 2016-07-10 일 기준으로 작성했습니다.
1. 쿠키의 도메인은 .로 시작할 수 없습니다.
일반적인 도메인표기법에서 와일드 카드는 *.saro.me 로 쓰지만, 쿠키에서 도메인으로 와일드 카드를 주는것은 .saro.me 식으로 주는 경우가 있습니다. 다만 이것이 오래전에 표준에서 제외되었기 때문에 굳이 .domain 을 허용할 생각이 없다는 것 같습니다. 참고 : https://tools.ietf.org/html/rfc6265#section-4.1.2.3 즉 관습적으로 .domain 을 쓰고있다면 .을제거하고 domain을 쓰면 서브도메인까지 포함됩니다. 즉 톰켓 8까지는 쓸 수 있지만 톰켓 9부터는 바로 오류가 납니다.
2. 쿠키의 값에서 url 인자 규칙에 맞지 않는 값을 쓸 수 없습니다.
(다만 이건 개인적인 생각으로 고쳐지지 않을까 싶습니다… 상식적으로 자동 치환이…) 예를들어서 “abc” 라는 값을 쓸수있지만 “ab c”라는 값은 쓸 수 없습니다. “ “ 아스키코드 32번은 %20으로 치환해야합니다. 아마 패치가 될 것 같지만 이 문제가 심각한게… 기존에 인벨리드한 값이 있다면.. 정상 값으로 덮어버리는 것 조차.. 기존값이 인벨리드하다면서 오류를 냅니다….. 톰켓 : 넌 아무것도 할 수 없어.. 이제 끝난거야.. 익스파이어 날짜까지 대기해 ㅋㅋㅋㅋㅋ