URL 인코딩이란? 퍼센트 인코딩의 원리와 변환 방법
URL에 한국어나 특수 문자를 포함하면 글자가 깨지는 경우가 있습니다. URL 인코딩의 원리를 이해하고 안전하게 URL을 다뤄봅시다.
URL 인코딩이란?
URL 인코딩(퍼센트 인코딩)은 URL에 사용할 수 없는 문자를 %XX(16진수) 형식으로 변환하는 처리입니다. RFC 3986에서 정의된 URI 사양에 기반합니다.
예를 들어:
- 공백 →
%20 &→%26서울→%EC%84%9C%EC%9A%B8café→caf%C3%A9
URL에서 안전하게 사용할 수 있는 문자는 영숫자(A-Z, a-z, 0-9)와 일부 기호(-, _, ., ~)뿐입니다. 그 외에는 모두 인코딩이 필요합니다.
왜 URL 인코딩이 필요한가?
URL에는 사용할 수 있는 문자에 엄격한 규칙이 있습니다. 인코딩 없이는 다음과 같은 문제가 발생합니다:
- 글자 깨짐 — 비ASCII 문자가 서버에 올바르게 전달되지 않음
- 파라미터 파괴 —
&와=가 쿼리 파라미터의 구분 문자로 오해됨 - 보안 위험 — 의도하지 않은 파라미터 주입이나 XSS 공격의 원인이 됨
URL 인코딩이 사용되는 곳
- 검색 쿼리 — 검색 URL에 한국어 등 비ASCII 문자를 포함
- 폼 제출 — HTML 폼 데이터를 서버에 전송
- API 호출 — RESTful API의 쿼리 파라미터 구축
- 리다이렉트 — URL 파라미터에 이동 대상 URL을 안전하게 포함
- 쿠키 — 쿠키 값의 특수 문자 이스케이프
- 이메일 링크 —
mailto:링크의 제목과 본문
URL 인코딩의 장점
- 국제화 지원 — 어떤 언어의 문자든 URL에 안전하게 포함 가능
- 데이터 무결성 — 예약 문자(
?,&,=,#)를 데이터로서 다룰 수 있음 - 표준 준수 — RFC 3986에 기반하여 모든 브라우저・서버에서 동일한 결과
- 보안 — 파라미터 인젝션과 XSS 공격의 위험을 경감
URL 변환 방법
URL 인코딩・디코딩은 본 사이트의 「URL Encoder / Decoder」로 간단하게 할 수 있습니다. 모든 처리는 브라우저 내에서 완료되며, 입력 데이터가 외부 서버로 전송되지 않습니다. 가입 불필요・완전 무료입니다.
도구 사용법
- URL Encoder / Decoder를 열기
- 인코딩 또는 디코딩 모드를 선택
- 텍스트 또는 URL을 입력
- 변환 결과가 실시간으로 표시
- 결과를 복사하여 사용
자주 묻는 질문
Q. encodeURI와 encodeURIComponent의 차이는?
A. encodeURI()는 전체 URL을 인코딩하며 ://, ?, & 등의 구조 문자는 그대로 유지합니다. encodeURIComponent()는 파라미터 값을 인코딩하기 위한 것으로, 이러한 문자도 모두 인코딩합니다. 파라미터 값에는 encodeURIComponent()를 사용하세요.
Q. URL 인코딩은 SEO에 영향을 주나요?
A. Google은 인코딩된 URL을 올바르게 처리하므로 SEO에 부정적인 영향은 없습니다. 다만 SNS 공유 시 URL이 길어질 수 있으므로 단축 URL 병용이 유효할 수 있습니다.
Q. +와 %20의 차이는?
A. 둘 다 공백을 나타내지만, +는 application/x-www-form-urlencoded(폼 제출)에서 사용되고, %20은 URI 표준 사양(RFC 3986)에서 사용됩니다. API의 쿼리 파라미터에는 %20이 권장됩니다.
관련 용어
- 퍼센트 인코딩 — URL 인코딩의 정식 명칭.
%XX형식으로 문자를 표현 - RFC 3986 — URI 구문을 정의하는 국제 표준 사양
- 쿼리 파라미터 — URL의
?이후에 부여되는key=value형식의 데이터 - URI(Uniform Resource Identifier) — 리소스를 유일하게 식별하는 문자열. URL은 URI의 일종
- UTF-8 — URL 인코딩에서 사용되는 문자 인코딩 방식