URL 파서 — 주소를 프로토콜·호스트·경로·쿼리로 분해하기
URL 구성 요소 분해 (디코딩, 한글 도메인, 쿼리 파라미터 편집 후 URL 재조립)
브라우저에서 처리 · 서버로 전송되지 않음
소개
긴 URL을 눈으로 읽으면 어디까지가 호스트이고 어디부터가 쿼리인지 헷갈립니다. 이 도구는 주소를 프로토콜, 사용자 정보, 호스트, 포트, 경로, 쿼리, 해시로 나누고 퍼센트 인코딩된 값은 읽을 수 있게 디코딩해 보여 줍니다. 쿼리 파라미터는 표에서 바로 고칠 수 있습니다.
사용법
- URL 입력 칸에
https://로 시작하는 전체 주소를 붙여 넣습니다. - “URL 구성 요소” 표에서 각 부분의 원래 값과 디코딩된 값을 확인하고 필요한 값을 복사합니다.
- “쿼리 파라미터” 표에서 키와 값을 고치거나 삭제 버튼, 추가 버튼으로 파라미터를 바꿉니다.
- 고친 결과는 입력 칸의 URL에 곧바로 반영되므로 그대로 복사해 쓸 수 있습니다.
기준
- 해석은 WHATWG URL 표준을 구현한 브라우저의
URL객체가 합니다. 직접 만든 파서가 아니므로 브라우저와 결과가 일치합니다. - 구성 요소는
protocol,username,password,hostname,port,origin,pathname,search,hash입니다. 기본 포트는 빈 값으로 나옵니다. - 퍼센트 인코딩(
%ED%95%9C)은 UTF-8로 디코딩하며, 잘못된 인코딩이면 원문을 그대로 둡니다. - 한글 도메인은 퓨니코드(RFC 3492) 규칙으로
xn--형태와 유니코드 형태를 서로 바꿔 보여 줍니다. - 쿼리 파라미터는
URLSearchParams로 읽고 씁니다. 같은 키가 여러 번 나와도 순서를 유지하고, 값이 없는 키(?flag)는 빈 값으로 보여 줍니다. - 스킴이 없거나 호스트가 비었거나 공백이 섞인 입력은 오류 문구를 보여 주고 아무것도 실행하지 않습니다. 이 도구는 주소에 접속하지 않습니다.
예시
| 입력 | 결과 |
|---|---|
https://münchen.de/straße |
호스트 xn--mnchen-3ya.de, 유니코드 münchen.de |
https://예시.한국/경로?이름=홍 길동#해시 |
경로 /%EA%B2%BD%EB%A1%9C, 디코딩 /경로, 파라미터 이름=홍 길동 |
https://example.com:443/a |
포트 비어 있음(기본 포트) |
https://e.com/?q=%F0%9F%98%80 |
q = 😀 |
참고
- 주소에 사용자 이름이나 비밀번호가 들어 있으면 안내 문구를 함께 보여 줍니다. 공유하는 화면에는 올리지 마세요.
mailto:나ftp:같은 다른 스킴도 구성 요소로 나눠 볼 수 있습니다.
자주 묻는 질문
어떤 규칙으로 URL을 해석하나요?
브라우저에 내장된 WHATWG URL 표준(`URL` API)을 그대로 씁니다. 브라우저가 주소창이나 링크에서 해석하는 방식과 같아서 대문자 호스트의 소문자 변환, 기본 포트(https 443, http 80) 생략, 경로의 `..` 정리가 자동으로 적용됩니다.
한글 도메인은 어떻게 보이나요?
주소에 한글 도메인이 있으면 표준 규칙에 따라 퓨니코드(`xn--`로 시작하는 ASCII 형태)로 바뀌어 호스트(ASCII) 항목에 나오고, 호스트(유니코드) 항목에는 원래 읽히는 모습이 나옵니다. 이미 퓨니코드로 쓴 주소를 넣으면 반대로 한글로 풀어 줍니다.
스킴이 없는 example.com/path는 왜 오류인가요?
URL 표준은 `https://` 같은 스킴이 있어야 완전한 URL로 봅니다. 스킴이 없으면 어떤 프로토콜인지 알 수 없어 오류로 두고, 앞에 스킴을 붙이라고 안내합니다.
쿼리 파라미터를 고치면 원래 URL이 바뀌나요?
표에서 키나 값을 고치거나 파라미터를 추가·삭제하면 위의 URL 입력칸이 새 주소로 바뀝니다. 경로와 해시는 그대로 유지되고, 쿼리는 URLSearchParams 규칙(공백은 +, 한글은 %XX)으로 다시 인코딩됩니다.