티스토리 뷰
#Encoding
인코딩이란?
문자 인코딩은 문자들의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 부호화하는 방법
URL 인코딩
URL에 포함된 문자들이 안전하게 웹 서버에 전달될 수 있도록 브라우저가 인코딩해 전달함.
예를 들어 < 의 코드 값은 %3c로 인코딩됨.
HTML 인코딩
HTML문서에서 특별한 기능을 수행하는 문자들을 안전하게 브라우저에 표시하기 위해 사용되는 인코딩 방식
BASE64 인코딩
BASE64 인코딩은 이메일 첨부 파일들을 인코딩해서 SMTP를 통해 안전하게 전송하거나 HTTP 승인을 할 경우 사용자 인증서를 인코딩할 때 사용한다.
복호화가 되는 암호화
멀티바이트 인코딩
EUC-KR
8비트 문자 인코딩방식으로 대표적인 한글 완성형 인코딩 방식
MS949
Java에서 default로 되어있는 인코딩 방식
Unicode
전세계 존재하는 다양한 문자를 표현하기 위해 만들어진 인코딩 방식
UTF16
URL Encoding과 유사한 방식으로 표시되며 %u를 유니코드 앞에 표시해 %u1234 형식으로 사용됨
UTF-8
유니코드를 위한 가변길이 문자 인코딩 방법 중 하나
MS Script 인코딩
마이크로소프트 사에서 제공하는 인코딩 방식으로 IE 에서만 사용 가능
실습1. URL 인코딩
hello&test = 10을 입력 후 전송을 누른다. 그러면 콘솔 창에서 이것을 볼 수 있다. 이것을 쪼개보면 &는 %26, =은 %3D 로 바뀌었다.
아래처럼 P@P#P://P~ 이렇게 입력 후 전송을 누른다.
그러면 콘솔창에서 아래처럼 인코딩 되어 보여진다.
encoding.jsp를 보면 encodingURIComponent라는 함수가 입력한 값을 인코딩해주는 것이다.
그런데, 지금은 Encoding 전이나 후가 똑같이 나오므로, 이것을 바꿔준다.
EncodingController.java 클래스에서 내용을 아래처럼 추가해준다.
즉, encodeURIComponent와 URLDecoder는 한 쌍처럼 사용해야한다.
이렇게 고치고 다시 테스트를 해보면 이렇게 잘 나온다.
실습2. BASE64 인코딩
안녕하세요!라고 적고 전송버튼을 누르면,
아래와 같이 입력값이 디코딩되지 않은채로 결과가 나온다.
일단 먼저 인코딩하는 방식을 보면 encoding.jsp를 보면 된다. 아래와 같이 BASE64.encode 함수가 입력한 값을 인코딩해주는 것이다. 이것을 하려면 javascript가 반드시 필요하다.
그리고 Decoding을 하려면 EncodingController.java 클래스에 아래와 같이 적어준다.
실행하면 결과값이 디코딩되어 잘 나온다.
실습3. URL Encoding, HTML Encoding해 출력
세번째로 Method3을 실습해본다.
인터넷 익스플로러에서 HTML Encoding이 잘된다..
콘솔창을 보면 아래처럼 전혀 인코딩이 되지 않는 것을 볼 수 있다.
이것을 막아내기 위해 다시 EncodingController를 고쳐준다.
URL 인코딩 사용하기
HTML 인코딩 사용하기
그리고 실행을 해보면 이제는 alert 창이 안뜨고 인코딩이 잘 된다.
'프레임워크 > Spring' 카테고리의 다른 글
[Mongo DB] Find (0) | 2016.05.31 |
---|---|
[Secure Coding 실습] SQL Injection (0) | 2016.05.30 |
싱글톤 (0) | 2016.04.28 |
[Secure Coding 실습] Paros 설치, Session 과 Cookie (0) | 2016.04.27 |
Web Socket으로 캐치마인드 만들기 (0) | 2016.04.27 |
- Total
- Today
- Yesterday
- 자바프로그래밍
- ERD
- 뒤로가기 버튼
- facebook 연동
- 글쓰기 버튼
- JSP
- mybatis
- mongo db
- aop
- 게시판 만들기
- MVC
- 클래스
- query
- 예외처리
- er다이어그램
- activity
- jQuery
- 배열
- 메소드
- sql
- 쿼리
- Relative Layout
- 메뉴바에 버튼 생성하기
- 포스팅하기
- Erwin
- 제이쿼리
- spring
- Linear Layout
- intent
- 뉴스피드 가져오기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |