*개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.
*지속적으로 내용을 수정해 나갈 예정입니다.
_Contents
#1 인코딩 & 디코딩
#2 encodeURIComponent & decodeURIComponent
#1 인코딩 & 디코딩
인코딩이란 사람이 인식 가능한 문자열을 바이트 형식으로 변환하는 과정이다.
디코딩은 인코딩의 반대 개념으로 바이트 형식을 문자열로 변환하는 과정이다.
인코딩과 디코딩은 주로 HTTP 통신을 수행 시 URI에 한글 혹은 특수문자가 포함되어 있을 때 사용된다.
예를들어 다음 URI의 쿼리스트링 부분을 살펴보자.(?이후가 쿼리 스트링이다.)
job에 프로그래머&블로거 라는 값이 전달 되기를 기대했지만, &특수문자는 &자체로 인식되지 않고, 하나의 파라미터가 끝나고 다음 파라미터가 온다는 특수한 뜻으로 해석되어 버린다.
또한 URI 주소에 한글이 포함되어 있을 경우 에러를 발생시킬 수 있다. 따라서 원하는 결과를 얻기 위해서는 job 부분의 "프로그래머&블로거"를 따로 인코딩하여 요청을 보내야만 한다.
이러한 처리를 "이스케이핑(escaping)" 이라고 부른다.
http://xxx.xxx.com?name=nov&job=프로그래머&블로거
#2 encodeURIComponet & decodeURIComponent
JavaScript는 인코딩 디코딩을 수행하기 위한 함수를 제공한다.
encodeURIComponet & decodeURIComponent 함수에 인코딩 혹은 디코딩을 수행할 문자열을 보내면 인코딩 , 디코딩 된 문자열을 반환해 준다.
다음은 job=프로그래머&블로거 문자열을 encodeURIComponet 함수를 이용해 인코딩한 예제이다.
const uri = 'http://xxx.xxx.com?name=nov&';
const str = 'job=프로그래머&블로거';
console.log('Before : ', uri + str);
const encodeStr = encodeURIComponent(str);
console.log('After : ', uri + encodeStr);
[출력결과]
Before : http://xxx.xxx.com?name=nov&job=프로그래머&블로거
After : http://xxx.xxx.com?name=nov&job%3D%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%26%EB%B8%94%EB%A1%9C%EA%B1%B0
'Archive > WEB' 카테고리의 다른 글
[HTTP] HTTP Request & Response 메시지 구조 (0) | 2022.06.27 |
---|---|
[HTTP] Content-Type & MIME (0) | 2022.06.23 |
[HTTP] Cookie : Set-Cookie Header (0) | 2022.06.22 |
[JavaScript] 템플릿 리터럴 : 백틱(``) 달러(${}) 문법 사용법 (0) | 2022.06.21 |
JavaScript / String.startsWith : 특정 문자열로 시작하는지 확인하는 메서드 (0) | 2022.06.20 |