구성 요소와 전체 URI 중 무엇을 고르나요?
경로의 한 구간, 쿼리 값이나 프래그먼트 값에는 URL 구성 요소를 사용하세요. 구분 문자를 유지해야 하는 전체 주소에는 전체 URI를 사용하세요. 텍스트만 변환하며 해당 URL에 접속하거나 유효성을 검사하거나 전송하지 않아요.
퍼센트 인코딩 규칙
유니코드를 UTF-8 퍼센트 이스케이프로 표현해요. 전체 URI 모드는 예약된 구문 문자를 유지하고 구성 요소 모드는 인코딩해요. 디코딩은 유효한 이스케이프만 되돌리며 잘못된 퍼센트 표기는 오류로 알려 줘요.
예시
구성 요소 모드에서 “café + tea”는 caf%C3%A9%20%2B%20tea가 돼요. 전체 URI 모드에서는 주소의 https://, ?, =, &는 유지하고 공백과 비ASCII 문자를 인코딩해요.
제한 및 자주 묻는 질문
디코딩할 때 실제 + 문자는 +로 남고 공백으로 바뀌지 않아요. HTML form-urlencoded 해석과 다른 점이에요. 결과는 보안 검사나 호스트·경로의 존재 확인을 의미하지 않아요.
올바른 모드 선택
URL 안에 넣을 값 하나를 인코딩하려면 URL 구성요소를 골라 &, =, /, ? 등이 구분자로 해석되지 않게 하세요. 완성된 주소의 구조를 유지하려면 전체 URI를 고르세요. 같은 텍스트를 두 번 인코딩하면 %25가 생기며 보통 실수예요.
디코딩 문제 해결
실제로 퍼센트 인코딩된 텍스트만 디코딩하세요. 잘못된 % 시퀀스는 추측하지 않고 거부해요. HTML 폼 데이터에서는 +가 공백일 수 있지만 이 일반 URL 도구는 +를 그대로 두므로 필요하면 폼 형식에 맞게 처리한 뒤 디코딩하세요.