URL 인코더·디코더·파서
값 하나, URL 전체 또는 폼 데이터를 퍼센트 인코딩하거나 디코딩하고, URL을 구성 요소와 쿼리 파라미터로 나눠 보여 줍니다.
URL 구성 요소
| 구성 요소 | 값 | 복사 |
|---|
| 파라미터 | 값 | 복사 |
|---|
도구를 여기에 고정하세요. 이 브라우저에 저장됩니다.
도구를 고정하면 그 스티커가 여기에 붙습니다.
값 하나, URL 전체 또는 폼 데이터를 퍼센트 인코딩하거나 디코딩하고, URL을 구성 요소와 쿼리 파라미터로 나눠 보여 줍니다.
URL 구성 요소
| 구성 요소 | 값 | 복사 |
|---|
| 파라미터 | 값 | 복사 |
|---|
URL에는 제한된 ASCII 문자만 쓸 수 있으며, 그중 일부에는 맡은 역할이 있습니다. ?는 쿼리를 시작하고, &는 파라미터를 구분하며, #는 프래그먼트를 시작합니다. 그 밖의 문자와, 일반 데이터로 쓰인 예약 문자는 바이트마다 퍼센트 기호 뒤에 16진수 두 자리를 붙여 표기합니다. 공백은 %20이 되고, UTF-8에서 2바이트인 é는 %C3%A9가 됩니다. 규칙은 RFC 3986에 정의되어 있습니다.
디코딩은 이 과정을 거꾸로 합니다. 퍼센트 기호 뒤에 16진수 두 자리가 오지 않거나, 이스케이프된 바이트가 유효한 UTF-8이 아니면 실패하며, 이때 도구는 해당 시퀀스와 위치를 알려 줍니다.
컴포넌트는 URL의 한 조각에 알맞습니다. 쿼리 값 하나, 경로 세그먼트 하나, 파라미터로 전달하는 리다이렉트 URL 같은 경우입니다. /, ?, &, =를 이스케이프하므로 값이 URL 구조로 오인되지 않습니다.
URL 전체는 공백과 비ASCII 문자만 고치면 되는 완전한 주소에 사용합니다. 구조를 이루는 문자는 건드리지 않으므로, 그런 문자가 들어 있는 값은 보호하지 못합니다. %도 이스케이프하기 때문에 이미 인코딩된 URL에 사용하면 이중으로 인코딩되며, 호스트의 IPv6 주소를 감싼 대괄호도 이스케이프합니다. 디코딩할 때 이 모드는 %2F, %26처럼 구조를 이루는 문자의 이스케이프를 그대로 둡니다.
폼은 브라우저가 HTML 폼을 쿼리 문자열이나 요청 본문으로 전송할 때 쓰는 application/x-www-form-urlencoded 형식으로, 공백을 +로 씁니다. 디코딩할 때 +를 공백으로 읽는 것은 이 모드뿐입니다.
입력이 절대 URL이면 입력을, 그렇지 않고 출력이 절대 URL이면 출력을 브라우저 자체의 URL 파서로 읽습니다. 링크와 fetch를 처리하는 바로 그 파서입니다. 표에는 스킴, 자격 증명, 호스트, 포트, 경로, 프래그먼트와 함께, 키와 값을 디코딩한 모든 쿼리 파라미터가 표시됩니다. 파서는 읽은 내용을 정규화합니다. 예를 들어 웹 URL에서는 스킴과 호스트를 소문자로 바꾸고, 경로의 .와 .. 세그먼트를 해석하며, 공백 같은 문자를 퍼센트 인코딩하므로, 각 구성 요소가 입력한 내용과 조금 다를 수 있습니다. http나 https URL의 국제화 도메인 이름은 파서가 저장하는 대로 ASCII(Punycode) 형태로 표시됩니다.
URL에 포트가 명시되지 않았고 도구가 해당 스킴의 기본 포트를 알고 있으면, 그 기본값을 표시합니다. 예를 들어 https는 443입니다.
encodeURI는 URL 전체를 위한 함수로, : / ? # & = 같은 문자를 건드리지 않습니다. encodeURIComponent는 URL 안의 값 하나를 위한 함수로, 이런 문자도 이스케이프합니다. 쿼리 값에는 encodeURIComponent를 사용하세요. 그렇지 않으면 값 안의 &나 =가 쿼리 문자열을 깨뜨립니다.
%20은 URL 어디에서나 유효합니다. + 기호가 공백을 뜻하는 것은 application/x-www-form-urlencoded 데이터 안에서뿐입니다. 이 형식은 HTML 폼이 쿼리 문자열이나 요청 본문으로 필드를 보낼 때 씁니다. 경로에서 +는 그냥 더하기 기호입니다.
퍼센트 기호는 항상 이스케이프의 시작이므로, 퍼센트 기호 자체는 %25로 써야 합니다. “100% free” 같은 텍스트는 퍼센트 기호 뒤에 16진수 두 자리가 오지 않으므로 올바른 퍼센트 인코딩 입력이 아닙니다.
아니요. 인코딩, 디코딩, 파싱은 모두 브라우저 탭의 JavaScript가 처리합니다. 이 도구는 입력한 내용으로 네트워크 요청을 보내지 않습니다.
별도의 창에서 열리며 오프라인에서도 계속 작동합니다.
설치하려면 공유 버튼을 누른 다음 “홈 화면에 추가”를 선택하세요.