URL 인코딩이란? 퍼센트 인코딩의 완전한 설명
빠른 답변
URL 인코딩 (퍼센트 인코딩) 은 URL의 안전하지 않은 문자를 % 뒤에 두 개의 16진수로 바꿉니다. 예를 들어, 공백은 % 20이 되고, & 는 % 26이 됩니다. 모호함 없이 URL을 전송할 수 있습니다. 무료 URL 인코더 및 디코더를 사용하여 브라우저에서 변환하세요.
소개
퍼센트 인코딩이라고도 하는 URL 인코딩은 URL의 특수 문자를 인코딩하여 인터넷을 통해 안전하게 전송할 수 있는 메커니즘입니다. URL에는 문자, 숫자 및 몇 가지 예약 문자 등 제한된 ASCII 문자 집합만 포함할 수 있습니다. 다른 문자 (공백, 따옴표, 비 ASCII 문자) 는 백분율 기호 (%) 와 문자의 바이트 값을 나타내는 두 개의 16진수로 인코딩해야 합니다. URL 인코딩은 RFC 3986에 의해 정의됩니다.
단계별
-
인코딩이 필요한 문자 이해
예약되지 않은 문자 (A-Z, a-z, 0-9, -,_,., ~) 는 인코딩이 필요하지 않습니다. 예약 문자 (:,/,?, #, [,], @,!, $, &, ', (,), *, +,,,;, =) 는 URL에 특별한 의미가 있으므로 데이터로 사용할 때 인코딩해야 합니다. 다른 모든 문자 (공백, 따옴표, 비 ASCII) 는 인코딩해야 합니다.
-
인코딩 메커니즘 알아보기
인코딩이 필요한 각 문자는 UTF-8 바이트 시퀀스로 변환되고 각 바이트는 % XX로 표시되며 여기서 XX는 16진수 값입니다. 공백 (0x20) → % 20. 비 ASCII 문자 'é' (UTF-8: 0xC3 0xA9) → %C 3% A9.
-
EncodeURI와 encodeURIComponent 구별
encodeURI () 는 전체 URL을 인코딩하지만 URL 구조의 일부인 예약 문자 (:/? & =) 는 보존합니다. encodeURIComponent () 는 예약되지 않은 문자를 제외한 모든 것을 인코딩합니다. 예약된 문자가 구조가 아닌 데이터인 쿼리 매개 변수 값에 사용하십시오.
-
퍼센트 인코딩된 URL 디코딩
디코딩은 인코딩을 반전시킵니다: % 20 → space, %C 3% A9 → é. 전체 URL에는 decodeURI () 를 사용하고 쿼리 매개 변수 값에는 decodeURIComponent () 를 사용하십시오. 잘못된 이스케이프 시퀀스 (예: % ZZ) 던지기 오류.
예
스페이스 인코딩
입력: hello world
산출: hello%20world
비ASCII 텍스트 인코딩
입력: café
산출: caf%C3%A9
쿼리 매개 변수 값 인코딩
입력: name=John Doe & Co.
산출: name%3DJohn%20Doe%20%26%20Co.
일반적인 문제
- 값만 인코딩해야 하는 경우 전체 URL 인코딩 - URL 구조 (://? & =) 가 아닌 쿼리 매개 변수 값을 인코딩합니다.
- 이중 인코딩 - URL이 이미 인코딩된 경우 인코딩은 다시 % 20 대신 % 2520을 생성합니다. 이미 인코딩되었는지 확실하지 않은 경우 먼저 디코딩하십시오.
- EncodeURI 대 encodeURIComponent를 잘못 사용하면 -encodeURI는 URL 구조 문자를 보존하고 encodeURIComponent는 이를 인코딩합니다. 쿼리 매개 변수 값에 대해 후자를 사용합니다.
- 유효하지 않은 이스케이프 시퀀스 — % ZZ 또는 끝에 있는 단일 % 가 유효하지 않으며 디코딩할 때 오류가 발생합니다.
팁
- URL 삽입을 방지하려면 공백, 특수 문자 또는 사용자 입력이 포함될 수 있는 쿼리 매개변수 값을 항상 인코딩하세요.
- 쿼리 매개변수 값에는 encodeURIComponent()를 사용하고 안전하지 않은 문자만 인코딩해야 하는 전체 URLs에는 encodeURI()를 사용합니다.
- URL 인코딩은 암호화가 아닙니다. 누구나 디코딩할 수 있습니다. 민감한 데이터를 숨기는 데 사용하지 마십시오.
- 브라우저에서 즉시 비공개로 변환하려면 URL 인코더와 디코더를 사용하세요.