Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

HTML5 URL 인코딩 완벽 가이드: 개념과 인코딩 대상 문자 유형

HTML5 URL 인코딩이란?

URL 인코딩(URL Encoding)이란 URL 안에서 출력할 수 없는 문자나 특별한 의미를 지닌 문자를, 웹 브라우저와 웹 서버가 모호함 없이 동일하게 해석할 수 있는 보편적인 표현 방식으로 변환하는 기법을 말합니다.

일반적으로 URL 인코딩은 해당 문자를 % 기호와 그 문자의 16진수 ASCII 코드 값으로 치환하는 방식(퍼센트 인코딩)을 사용합니다. 예를 들어 공백은 %20, 물음표(?)는 %3F처럼 표현됩니다.

인코딩이 필요한 문자의 종류

URL에서 인코딩 대상이 되는 문자는 크게 다음 네 가지 유형으로 나눌 수 있습니다.

1. ASCII 제어 문자

화면 출력을 제어하는 용도로 사용되는, 인쇄할 수 없는(unprintable) 문자들입니다. 16진수 00~1F(10진수 0~31) 범위와 7F(10진수 127)가 여기에 해당합니다. 전체 인코딩 표는 아래에서 확인할 수 있습니다.

2. 비(非)ASCII 제어 문자

128자로 구성된 ASCII 문자 집합을 벗어나는 문자들입니다. 이 범위는 ISO-Latin 문자 집합의 일부로, ISO-Latin 집합의 '상위 절반' 전체, 즉 16진수 80~FF(10진수 128~255)를 포함합니다. 한글, 일본어, 중국어 등 다국어 문자를 URL에 사용할 때도 이 범위의 처리가 필요합니다. 전체 인코딩 표는 아래에서 확인할 수 있습니다.

3. 예약 문자(Reserved Characters)

달러 기호($), 앰퍼샌드(&), 플러스(+), 쉼표(,), 슬래시(/), 콜론(:), 세미콜론(;), 등호(=), 물음표(?), 골뱅이(@)와 같은 특수 문자들입니다. 이 문자들은 URL 안에서 경로 구분, 쿼리 문자열 구분 등 각각 고유한 문법적 의미를 가지므로, 데이터 값으로 사용할 때는 반드시 인코딩해야 합니다. 전체 인코딩 표는 아래에서 확인할 수 있습니다.

4. 안전하지 않은 문자(Unsafe Characters)

공백, 따옴표(" "), 부등호(<, >), 파운드 기호(#), 퍼센트(%), 중괄호({ }), 파이프(|), 백슬래시(\), 캐럿(^), 물결표(~), 대괄호([ ]), 억음 부호(`) 등이 여기에 속합니다. 이 문자들은 게이트웨이·프록시 등 중간 장비나 프로토콜 처리 과정에서 여러 가지 이유로 잘못 해석되거나 손실될 가능성이 있으므로, URL에 그대로 두면 안전하지 않습니다.

마무리

URL 인코딩은 웹에서 데이터를 안정적으로 전송하기 위한 필수적인 기본 규칙입니다. 위 네 가지 문자 유형을 이해하고 있으면, 쿼리 문자열 작성이나 API 호출 시 발생할 수 있는 오류를 사전에 예방할 수 있습니다.