인코딩
문자와 같이 사람이 해석할 수 있는 데이터를 이진형식으로 변환해 컴퓨터가 처리할 수 있게 하는 과정
ex) 데이터 압축
저장 공간을 절약하고 전송시간을 줄이는 데 도움이 된다.
ASCII
흔히 알고 있는 ASCII 문자는 초기 문자 인코딩 시스템이다. 아스키코드는 알파벳 대문자, 소문자, 숫자, 특수문자 등 128개의 문자를 7비트 바이너리 코드로 표현하는데, 다양한 언어와 문자를 표현하기에는 한계가 있어
전 세계 모든 문자를 고유한 숫자로 매핑해 표현할 수 있는 Unicode와 UTF-8이 등장했다.
UTF-8
UTF-8은 Unicode의 가변길이 문자 인코딩 방식
- ASCII 코드와의 호환성이 높음(UTF-8 의 처음 128개 문자는 ASCII와 동일하기 때문)
- 일반적인 문자에 대해 더 적은 바이트 사용 1~4 바이트
- 웹의 기본 인코딩 방식
URL (퍼센트 인코딩)
: 웹 브라우저로부터 받은 URL 문자열을 유효한 형식으로 변환하는 것
- % 기호 뒤에 해 문자의 아스키 코드 16진수 값을 붙여 나타낸다.
ex) URL에 공백이 포함되는 경우 + 기호 혹은 %20으로 변환된다.
Base64
: 이진데이터를 아스키 문자로 구성된 텍스트로 변환하는 인코딩 방식
64(알파벳 대소문자 52 + 숫자 10 + '+' + '/'
- padding 값은 == (디코딩할 때는 버려)
ex) 이진데이터인 이미지를 html 파일에 넣는 경우 base64로 인코딩해 넣을 수 있다.
💡 왜 바꾸는데?
→ html 문서는 모두 아스키코드로 되어있는데, 아스키코드로 표현할 수 없는 바이너리코드로 존재하는 것(예를 들면 이미지)이 한번에 전달되기 위함. 이미지와 html 함께 전달할 때가 전달 2번 할 때보다 효율성이 좋음.
1. 원본 이진데이터터를 6비트씩 끊어 묶기(6의 배수가 아니라면 0을 뒤에 추가하기)
2. base64 table에서 해당하는 문자를 찾아 치환하기
3. 글자 수 가 4의 배수가 되도록 문자 '='를 반복해 뒤에 추가하기 (padding 과정)
디코딩
인코딩의 역과정으로, 이진 형식의 데이터를 사람이 해석할 수 있는 데이터로 변환하는 작업
'Study > Background' 카테고리의 다른 글
Cookies🍪 & Session (0) | 2025.03.10 |
---|---|
Virtual box VS Docker (0) | 2025.02.25 |
운영체제 OS (0) | 2025.02.23 |
Web (0) | 2025.02.23 |
HTTP (0) | 2025.02.22 |