Dev etc/etc

[Web-dev] URL 인코딩(Encoding)이란? 기본원리 및 사용 예제

콩다영 2024. 6. 12.
728x90

 

URL 인코딩은 URL에서 특정 문자들이 제대로 해석되도록 하기 위해 사용하는 방법입니다.

웹 브라우저와 서버가 URL을 올바르게 이해할 수 있도록 허용되지 않은 문자들을 변환합니다.

 

URL은 특정 문자를 포함할 수 없으므로,

이러한 문자는 퍼센트 기호 ('%')와 2자리의 16진수로 이루어진 이스케이프 시퀀스로 대체됩니다. 

 

 

 

URL 인코딩의 기본 원리

1. 허용된 문자 :

  • 알파벳 : A-Z, a-z
  • 숫자 : 0-9
  • 특수 문자 : '- _ . ~' ( 하이픈, 밑줄, 마침표, 물결표)

2. 허용되지 않은 문자 :

  • 공백, &, ?, %, #, = 등의 특수 문자들

3. 퍼센트 인코딩 :

  • 허용되지 않은 문자는 '%'와 두 자리의 16진수로 변환됩니다.
  • 예를 들어, 공백(' ')은 '%20'으로, '&'는 '%26'으로 인코딩 됩니다.

이러한 인코딩 규칙을 통해, URL에 포함된 특수 문자가 URL 파싱에 영향을 주지 않도록 보장할 수 있습니다.

 

 


 

 

Java에서 URL 인코딩 및 디코딩

Java에서는 Java의 표준 라이브러리인 'java.net' 패키지를 사용하면

URL 인코딩과 디코딩을 쉽게 할 수 있습니다. 주요 클래스는 'URLEncoder' 와 'URLDecoder' 입니다.

 

 

URL 인코딩 예제

'URLEncoder.encode()' 메서드를 사용하여 문자열을 URL 인코딩할 수 있습니다.

import java.net.URLEncoder;
import java.io.UnsupportedEncodingException;

public class URLEncodingExample {
    public static void main(String[] args) {
        try {
            String originalString = "Hello, World! How are you?";
            String encodedString = URLEncoder.encode(originalString, "UTF-8");
            System.out.println("Original String: " + originalString);
            System.out.println("Encoded String: " + encodedString);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 다음과 같은 출력을 생성합니다. 

Original String: Hello, World! How are you?
Encoded String: Hello%2C+World%21+How+are+you%3F

 

이 코드에서 중요한 부분은 'URLEncoder.encode' 메서드를 사용하는 것입니다. 

이 메서드는 두 개의 매개변수를 받습니다. 인코딩할 문자열사용할 문자 인코딩 (보통 "UTF-8"을 사용).

이 메서드는 인코딩 된 문자열을 반환합니다.

 

 

URL 디코딩 예제

'URLDecoder.decode()' 메서드를 사용하여 URL 인코딩 된 문자열을 원래의 문자열로 복원할 수 있습니다.

import java.net.URLDecoder;
import java.io.UnsupportedEncodingException;

public class URLDecodingExample {
    public static void main(String[] args) {
        try {
            String encodedString = "Hello%2C+World%21+How+are+you%3F";
            String decodedString = URLDecoder.decode(encodedString, "UTF-8");
            System.out.println("Encoded String: " + encodedString);
            System.out.println("Decoded String: " + decodedString);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 다음과 같은 출력을 생성합니다.

Encoded String: Hello%2C+World%21+How+are+you%3F
Decoded String: Hello, World! How are you?

 

 

 

URL 인코딩은 웹에서 데이터를 안전하게 전송하기 위한 중요한 기술입니다.

Java의 'URLEncoder'와 'URLDecoder' 클래스를 사용하여 간단하게 URL 인코딩과 디코딩을 수행할 수 있습니다.

이 방법을 사용하면 공백 및 특수 문자가 포함된 데이터를 URL로 안전하게 전송하고,

수신 측에서 이를 정확하게 해석할 수 있습니다. 

 

 

 

728x90
반응형

댓글