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로 안전하게 전송하고,
수신 측에서 이를 정확하게 해석할 수 있습니다.
'Dev etc > etc' 카테고리의 다른 글
[OCR] Tesseract OCR 설치 및 사용방법 (0) | 2024.01.05 |
---|---|
[C++] 콘솔환경에서 글자색,배경색 색상 변경 (0) | 2023.09.21 |
[Docker] 도커 컴포즈(Docker Compose)란 ? (0) | 2023.06.23 |
[Docker] 도커 이미지(Image)와 컨테이너 (0) | 2023.06.19 |
[Docker] 도커(docker) 서비스 환경 (0) | 2023.06.16 |
댓글