본문으로 건너뛰기
AZ Tools

URL 파서

URL을 프로토콜·호스트·포트·경로·쿼리·해시로 분해. 쿼리 파라미터를 표로 디코딩.

프로토콜

https:

Origin

https://example.com:8080

호스트명

example.com

포트

8080

경로

/path/to/page

쿼리 문자열

?q=hello&lang=en

해시

#section

사용자명

user

비밀번호

pass

쿼리 파라미터

키값
qhello
langen

브라우저 네이티브 URL API 사용.

사용법

  1. URL 붙여넣기(스킴 필수, 예: https://).
  2. 각 부분 확인 후 개별 복사.
  3. 쿼리 파라미터 표에서 각 값 검증.

자세한 설명

펼치기

URL을 붙여넣으면 각 부분에 이름표가 붙어 나옵니다. 프로토콜, 오리진, 호스트명, 포트, 경로, 쿼리 문자열, 프래그먼트가 표시되고, 포함된 자격 증명은 따로 보여 주며, 쿼리 파라미터는 키/값 행으로 펼쳐져 중복이나 인코딩 실수가 한눈에 드러납니다. 브라우저 자체의 WHATWG URL 파서를 사용하는데, fetch와 주소창이 쓰는 바로 그 파서입니다. 덕분에 입력한 문자열이 아니라 코드가 실제로 받게 될 정규화 결과를 볼 수 있습니다. 호스트는 소문자로 바뀌고, https의 443 같은 기본 포트는 사라지며, 경로의 점 세그먼트는 정리되고, ASCII가 아닌 호스트명은 퓨니코드 형태로 변환됩니다. URL이 보이는 것과 다르게 동작한다면 대개 그 차이가 여기에 있습니다.

자주 묻는 질문

입력이 왜 실패하나요?

URL에는 스킴 필요. example.com/path는 파싱 불가, https://example.com/path는 OK. 상대 경로·프로토콜 상대 URL(//example.com)도 파싱 안 됨.

https://example.com의 port가 왜 비어있나요?

프로토콜 기본 포트(http=80, https=443)이면 URL.port는 의도적으로 빈 문자열. 실제론 443에 연결됨.

쿼리 파라미터는 디코딩되나요?

예. %20은 공백, %2F는 /로 표시. 키·값 복사 시 디코딩된 형태. percent-encoded 원문이 필요하면 search 보기.

URL이 어디로 전송되나요?

아니요. 파싱은 브라우저 내 WHATWG URL API로만.

붙여넣은 URL이 바뀌어서 돌아왔습니다. 버그인가요?

아닙니다. 여러분의 코드가 실제로 받게 될 정규화 결과입니다. WHATWG 파서는 호스트를 소문자로 바꾸고, 기본 포트를 떼어 내고, 경로의 점 세그먼트를 정리하고, ASCII가 아닌 호스트명을 퓨니코드로 바꿉니다. 정규화된 형태를 보는 것이 대개 요점입니다. fetch와 브라우저, 대부분의 서버가 실제로 쓰는 것이 그 형태이기 때문입니다.

example.com만 넣으면 왜 거부되나요?

스킴이 없으면 그것은 URL이 아니라 URL처럼 보이는 문자열일 뿐이기 때문입니다. 파서는 여러분이 https를 뜻했는지 ftp를 뜻했는지 상대 경로를 뜻했는지 추측할 수 없고, 링크가 의도치 않은 곳을 가리키게 되는 것도 바로 그런 추측 때문입니다. 앞에 https://를 붙이면 해석됩니다.

관련 도구