본문으로 바로가기

[통신] URL 인코딩이란?

category 네트워크/통신 2025. 5. 26. 20:49
반응형

웹 개발이나 서버 설정을 하다 보면 종종 마주치는 것이 바로 **URL 인코딩(URL Encoding)**입니다. "인코딩"이라는 단어 때문에 복잡하게 느껴질 수 있지만, 실제로는 웹에서 데이터를 정확하게 전달하기 위해 꼭 필요한 처리 과정입니다. 이 글에서는 URL 인코딩이 무엇인지, 왜 필요한지, 어떻게 사용하는지에 대해 간단하고 명확하게 설명합니다.

 

1. URL 인코딩이란?

URL 인코딩이란, URL에 사용할 수 없는 문자특정한 형식으로 변환(인코딩) 하는 것을 말합니다. 이 방식은 [퍼센트 인코딩(percent-encoding)]이라고도 불립니다. 문자 하나를 % 기호와 16진수 두 자리 숫자로 표현합니다.

예를 들어, 공백( )은 %20으로 인코딩됩니다.

 

2. 왜 URL 인코딩이 필요한가요?

웹 브라우저나 서버는 URL을 해석할 때 특수한 의미를 가진 문자가 있을 경우 혼동할 수 있습니다. 예를 들어:

? 쿼리 문자열 시작
& 파라미터 구분자
= 키와 값 구분
/ 경로 구분자
# 북마크(프래그먼트) 시작
 

이러한 문자들이 데이터에 포함되어 있다면, 이를 인코딩하지 않으면 원래 의미와 다르게 해석될 수 있습니다. 그래서 URL 인코딩을 통해 안전하게 문자 데이터를 전달합니다.

 

3. 어떻게 URL 인코딩을 하나요?

URL 인코딩은 특정 문자를 아래의 방식으로 변환합니다.

  • 비허용 문자 → % + ASCII 16진수
  • 예: 공백 → %20, 한글 → UTF-8 → 바이트 → 16진수 → %xx%xx

 

4. 인코딩 대상 문자 예시

  • 공백 ( ) → %20
  • ! → %21
  • # → %23
  • % → %25
  • 한글 → %ED%95%9C%EA%B8%80 (UTF-8 기준)

 

5. 예제

1. 단순 문자열 인코딩

입력 문자열: Hello World! URL
인코딩 후: Hello%20World%21

2. 쿼리 파라미터에 한글 포함

6. URL 인코딩 방법 (프로그래밍 예시)

Java

URLEncoder.encode("한글 테스트", "UTF-8");

JavaScript

encodeURIComponent("한글 테스트");

Python

import urllib.parse urllib.parse.quote("한글 테스트")

 

7. URL 인코딩 관련 표준

  • RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
  • RFC 3987: Internationalized Resource Identifiers (IRIs)

 

8. URL 인코딩 vs Base64 인코딩

 

구분 URL 인코딩 Base64 인코딩
목적 웹 전송을 위한 안전한 표현 바이너리 데이터 표현
방식 % + 16진수 ASCII 영문자/숫자/+/=/로 구성
사용 예 URL, 쿼리 문자열 이미지, 토큰 등
 

URL 인코딩은 단순히 문자들을 변환하는 과정처럼 보이지만, 웹 애플리케이션에서 데이터의 안정성과 정확성을 보장하는 기본 중의 기본입니다. 쿼리 파라미터, REST API 호출, 리다이렉트 처리 등 다양한 상황에서 URL 인코딩은 반드시 필요하니 잘 이해해두면 큰 도움이 됩니다!

반응형

'네트워크 > 통신' 카테고리의 다른 글

[통신]Caching Server(캐싱서버)란?  (4) 2025.03.18
[통신] 유심? 이심? 아이심?  (2) 2024.03.04
[통신] IMEI, ESN이란?  (0) 2023.08.26
[통신] CSCF란?  (0) 2023.04.24
[통신] 5G, 5세대 이동 통신  (0) 2023.01.16