티스토리 뷰
본 포스팅은 Encoding 관련 우선순위 테스트입니다.
Request Encoding, Response Encoding 각각 우선순위에 대한 테스트를 수행할 예정입니다.
먼저 Request Encoding 우선순위 테스트입니다.
JEUS의 Encoding
JEUS Encoding의 종류
- Request-Encoding
브라우져 등으로 부터 받은 인코딩 값을 인식하는 방식
옵션으로는 forced, default 가 있다. (get 방식)
- Postdata-Encoding
브라우져 등으로 부터 받은 인코딩 값을 인식하는 방식
옵션으로는 forced, default 가 있다. (post 방식)
- Response-Encoding
인코딩 된 값을 호출된 페이지에 담아 출력할 때 인코딩하는 방식
- 서비스 요청 시 Data의 흐름과 Encoding
TEST 환경
- Windows XP Professional Ver.2002 ServicePack 2
- WebtoB 4.1 / JEUS5.0 Fix 20
- 테스트를 위한 JSP 파일 2개.
test.jsp : 브라우져에서 요청값을 인코딩해 넘기기 위한 소스 파일
ttt.jsp : JEUS에서 response-encoding 된 내용을 브라우져에 출력하기 위한 소스 파일.
- test.jsp 호출 화면
- tts.jsp 호출 화면
Request-Encoding Test
Request-Encoding 적용 우선 순위
b. 요청의 Accept-Language 요청 필드
c. WEBMain.xml 에 정의된 "default" 인코딩
d. 아무런 적용이 없을 시, "ISO-8859-1"
Case 1 . JEUS에서 <forced> 옵션을 사용
1–1. 소스 인코딩이 UTF-8 이고 JEUS 의 <request-encoding>에 <forced>가 UTF-8 일 때
호출 시
Case 1 . JEUS에서 <forced> 옵션을 사용
1–2. 소스 인코딩이 EUC-KR 이고 JEUS <forced>가 EUC-KR, <default>가 UTF-8 일 때
호출 시
Case 1 . JEUS에서 <forced> 옵션을 사용
1–3. 소스 인코딩이 EUC-KR 이고 JEUS <forced>가 UTF-8 일 때
호출 시
Case 2. JEUS에서 <default> 옵션을 사용, Accept-Language 적용 상태를 Test
2–1. 소스 인코딩이 EUC-KR, Accept-Language가 ko 이고 JEUS <default>가 UTF-8 일 때
호출 시
Case 2. JEUS에서 <default> 옵션을 사용, Accept-Language 적용 상태를 Test
2–2. 소스 인코딩이 EUC-KR, Accept-Language가 null 이고 JEUS <default>가 UTF-8 일 때
Accept-Language를 지우는 작업
※ “도구-인터넷옵션-일반-언어” 에서 한국어 설정을 제거
Case 3. JEUS에서 <default> 옵션을 사용, 적용 상태를 Test
3–1. 소스 인코딩이 UTF-8, Accept-Language가 null 이고 JEUS <default>가 UTF-8 일 때
호출 시
Case 3. JEUS에서 <default> 옵션을 사용, 적용 상태를 Test
3–2. 소스 인코딩이 EUC-KR, Accept-Language가 null 이고 JEUS <default>가 UTF-8 일 때
호출 시
Case 4. JEUS, Accept-Language 에 아무런 설정이 없을때, 적용 상태를 Test
4–1. 소스 인코딩이 EUC-KR, JEUS에 인코딩 관련 아무런 설정이 없을 때
호출 시
※ IE에서 ISO-8859-1은 영문자를 제외한 모든 글자가 깨진다.
Case 4. JEUS, Accept-Language 에 아무런 설정이 없을때, 적용 상태를 Test
호출 시
테스트 결론입니다.
Request-Encoding Test
Request-Encoding 적용 우선 순위
a. WEBMain.xml 에 정의된 "forced" 인코딩
b. 요청의 Accept-Language 요청 필드
c. WEBMain.xml 에 정의된 "default" 인코딩
d. 아무런 적용이 없을 시, "ISO-8859-1"
2. Response Encoding 우선순위 테스트
JEUS의 Encoding
JEUS Encoding의 종류
- Request-Encoding
브라우져 등으로 부터 받은 인코딩 값을 인식하는 방식
옵션으로는 forced, default 가 있다. (get 방식)
- Postdata-Encoding
브라우져 등으로 부터 받은 인코딩 값을 인식하는 방식
옵션으로는 forced, default 가 있다. (post 방식)
- Response-Encoding
인코딩 된 값을 호출된 페이지에 담아 출력할 때 인코딩하는 방식
- 서비스 요청 시 Data의 흐름과 Encoding
마찬가지로 Response Encoding 역시 테스트를 수행하였으며, 결론은 다음과 같습니다.
Response-Encoding의 적용 우선 순위
a. WEBMain.xml 에 정의된 "forced" 인코딩
b. Servlet 에서의 Setting ("...text/html;charset=XXX" 으로 개발자가 설정한 XXX 값 )
c. WEBMain.xml 에 정의된 "default" 인코딩
d. 아무런 적용이 없을 시, "ISO-8859-1"
무작정 깨지는 인코딩 문제를 어떻게 해야 할지 갈팡 질팡 하던 기억이 있습니다. 물론 이러한 문제를 유발하기에 앞서 인코딩은 모두 통일하는 것이 좋다는 것을 말씀드리면서 포스팅을 마치도록 하겠습니다.
고맙습니다.
'④ 미들웨어 > ⓙ JEUS' 카테고리의 다른 글
[JEUS] ClassLoader(Classloading) 및 Class 동적반영 (2) | 2018.07.09 |
---|---|
[JEUS] Oracle/Tibero 접속세션 구분 방법 (0) | 2018.07.04 |
[Web Application Server] JEUS7 Password 변경 가이드 (0) | 2018.07.03 |
[Web Application Server] JEUS8 Managed Server Status (2) | 2018.07.02 |
[Web Application Server] JEUS7 HotSwap 정의서 (0) | 2018.06.11 |
- Total
- Today
- Yesterday
- nodejs
- wildfly
- JBoss
- OpenStack
- openstack tenant
- 마이크로서비스
- SWA
- Docker
- TA
- API Gateway
- git
- jeus
- k8s
- aws
- JEUS7
- openstack token issue
- Da
- Architecture
- 오픈스택
- 아키텍처
- SA
- kubernetes
- JEUS6
- webtob
- MSA
- apache
- 쿠버네티스
- 마이크로서비스 아키텍처
- node.js
- aa
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |