본문 바로가기
카테고리 없음

URI 만들 때 encode()의 역할

코동이 2020. 6. 25.
URL
ASCII 코드
Unicode , ISO-8859, UTF-8 차이
퍼센트 인코딩(Percent Encoding)
스프링에서 URL 만들 시, encode() 역할 차이

 

 

URL

웹 브라우저는 URL주소를 통해 웹 서버로부터 페이지를 요청한다. 

ex) https://www.w3schools.com

 

ASCII 코드

ASCII(American Standard Code for Information Interchange)는 그 의미처럼 정보 교환을 위한 미국의 표준 코드이다.

처음 60년대에 탄생했고, 전기장치나 컴퓨터끼리의 정보 교환을 위한 charset으로 사용되었다.

하지만 이 초기의 charset인 ASCII 코드는 7bit의 크기로 구성은 [0-9] [a-z] [A-Z] [!@#$%^&*()...] 등등 언어는 영어 알파벳만 지원하기 때문에 다른나라의 언어를 URL에 표현 할 수 없었다. 또한 독일어, 에스파냐어 등 다른 유럽의 언어문자를 해석하지 못해 글씨가 와장창 깨졌다.

 

그렇다면, 다른 나라 사람들을 위해 URL에 다양한 언어를 지원하는 charset이 필요하지 않을까?

 

ISO-8859

이는 HTML4의 표준으로 기존의 7bit인 ASCII 코드에 1bit를 더 넣어 128개의 문자를 추가하였다.

7bit의 2^7=128수준에서 8bit의 2^8=256수준으로 128개의 문자를 새로 넣게 된 것이다.

대표적으로 독일어, 스페인어, 이탈리아어, 포르투갈어 등이 포함되었지만, 128개만 추가적으로 넣었기 때문에, 여전히 불완전하게 포함되는 언어들이 있었고 아예 포함되지 못하는 언어들이 대부분 이었다.

 

ISO-8859 이외에 다양한 character encoding 방식들이 있었고, 다른 언어들을 표현하지 못한다는 한계와 더불어, 호환이 되지 않는 문제도 있었다. 다른 문자를 같은 숫자로 인코딩한다든가, 같은 문자를 서로 다른 숫자로 인코딩하여 글씨가 꺠지는 문제가 있었다.

 

따라서 다른 언어권의 문자들도 담을 수 있으면서, 호환성에도 문제가 없는 character의 표준이 요구되었다.

 

UNICODE

It became apparent that a new character encoding scheme was needed, which is when the Unicode standard was created. The objective of Unicode is to unify all the different encoding schemes so that the confusion between computers can be limited as much as possible.  The Unicode standard defines such a code by using character encoding.

*Character Encoding = assigns a number to every character that can be used(UTF-8, UTF-16, UTF-32 ...)

 

전 세계의 모든 문자를 다루도록 설계된 표준 문자 처리 방식으로, 현대 모든 소프트웨어에서 사용되며 어떤 장치,플랫폼등에 구애받지 않고 나아가 인터넷 환경의 URL, HTML, JSON도 지원한다. 

이제 더이상 1Byte가 아닌 2Byte를 사용하게 된다. 2^16=65536로 65536개의 문자를 사용하여 다양한 문자들을 사용할 수 있게 되었다. 하지만 새로운 문자가 만들어지거나 아직 추가하지 못한 문자를 계속 넣어주기 때문에 2Byte를 넘어 현재도 계속 늘어나고 있다. 

 

Unicode Chart : https://rudhar.com/lingtics/uniclnkl.htm

 

Links to Unicode code charts

Links to Unicode code charts See the split page for details about UTF8 encoding Unicode.org in its charts section offers useful links to the Unicode code charts. The only problem with it though, is that the code range of each subset is not listed there, so

rudhar.com

이제 UNICODE의 문자들을 어떻게 Encoding하여 사용하는지 종류를 알아보자.

 

 

UTF-8

 

 

http://www.unicode.org/standard/WhatIsUnicode.html

반응형