본문 바로가기
IT/문자인코딩

URL 인코딩 이란? URL 인코딩에 대해 쉽게 이해하자

by 바닐라이코노미 2024. 5. 30.
반응형

인터넷 주소창에서 가끔 URL을 공유하기 위해 복사해서 붙여 넣기를 하다 보면

뒤에 이상한 값들이 %와 함께 섞여서 이어져 있는 것을 한 번쯤은 본 적이 있을 거라 생각됩니다

아래와 같이 인터넷으로 데이터를 주고 받을때 변환되는 URL 인코딩에 대해서 정리 하려 합니다

 

https://classicblack.tistory.com?data1=%EB%8D%B0%EC%9D%B4%ED%84%B01 

 * %EB%8D%B0%EC%9D%B4%ED%84%B01 (문자 '데이터1' 인코딩)

 

URL 인코딩이란?

URL 인코딩(또는 퍼센트 인코딩)은 웹에서 URL을 구성하는 문자들이 안전하게 전송되고 해석될 수 있도록 하는 방법이다

인터넷상에서 데이터를 전송할 때, 특정 문자들은 그 자체로 특별한 의미를 가지거나 전송 과정에서 문제를 일으킬 수 있다

 

예를 들어, URL 내의 공백은 서버에 의해 올바르게 해석되지 않을 수 있으며, 한글이나 특수 문자는 웹 표준에 따라 직접 URL에 포함될 수 없습니다 이러한 문제를 해결하기 위해 URL 인코딩이 사용

 

URL 인코딩에서는 ASCII 문자와 예약문자를 제외한 모든 문자,  일부 특수 문자를 퍼센트 기호(%) 다음에 이어지는 두 자리 16진수로 변환하여 나타낸다. 이 두 자리 16진수는 원래 문자의 ASCII 코드 값을 나타낸다

 

예를 들어, 공백 문자(" ")는 ASCII 코드에서 32(16진수로 20)이므로, URL 인코딩에서는 "%20"으로 표현된다

한글이나 다른 비 ASCII 문자는 보통 UTF-8 인코딩을 거친 후, 그 결과를 바이트 단위로 퍼센트 인코딩

 

[예시 1]

- 공백(" ") → %20

- 쉼표(",") → %2C

- 한글 "가" (UTF-8 인코딩 된 후) → %EA%B0%80

 

[예시 2]

 

위에 보면 빨간글씨로 표현된 예약어 ASCII로 변환이 가능한 data1, data2 글자를 제외한 데이터 1, 데이터 2가 %xx형태로 인코딩 된 것을 볼 수가 있다

 - 데이터 1 : %EB%8D%B0%EC%9D%B4%ED%84%B01

 - 데이터 2 : %EB%8D%B0%EC%9D%B4%ED%84%B02

 

여기서  빨간 글씨로 표현된 예약어는 인코딩을 안 해도 돼?라는 궁금증이 생길 수 있다

이름에서 알 수 있듯이 예약어는 URL 상에서 특정 기능을 하는 문자로 웹 클라이언트와 서버 간에 서로 예약된 문자이다

 * 예약어를 예약어로 사용하지 않고 전달하려는 값으로 보내려 할 때는 인코딩해서 보내면 된다

 

[예약 문자 종류]

문자 인코딩
? 파라미터 시작 알림
= 파라미터 값 대입
& 다음 파라미터 식별자
+ 공백
! * ' ( ) ; : @ $ , / # [ ] 그 외 문자

 

URL 인코딩은 웹에서 데이터의 안전한 전송을 보장하기 위한 필수적인 과정으로

따라서 웹 개발을 할 때, URL에 사용될 문자열이 적절히 인코딩 되었는지 확인하며 사용해야겠다

반응형