본문 바로가기

URL 파서

긴 주소를 프로토콜·호스트·경로·쿼리로 나눠 표로 보여 줍니다. 쿼리는 파라미터별로 행을 나눠 보여 주고, 행을 클릭하면 그 값만 복사됩니다.

로딩 중...

왜 만들었나요

로그인 연동에서 돌아오는 주소(OAuth 콜백)가 자꾸 엉뚱한 데로 튀어서 그 주소를 열어 봤는데, 안에 또 인코딩된 주소가 겹겹이 들어 있어 어디서 깨졌는지 찾기가 번거로웠습니다. 한 번에 분해해 쿼리스트링 분석까지 하고 값을 바로 복사할 수 있으면 디버깅이 빨라지겠다 싶어 만들었습니다.

Note

붙여넣은 주소는 서버로 전송되지 않습니다. 분석이 전부 브라우저 안에서 이뤄져, 토큰이 담긴 콜백 주소를 넣어도 기기 밖으로 나가지 않습니다.


URL 파서 사용 방법

  1. 입력창에 분석할 URL을 붙여넣으면 즉시 분해됩니다. 샘플 버튼으로 시작해도 됩니다. 주소 형식이 아니면 URL 형식이 올바르지 않습니다 안내가 빨간 박스로 뜨니, 공백이나 잘못된 문자가 섞였는지 확인해 보세요. 다만 공백 없는 낱말 하나는 도메인으로 봅니다안녕하세요를 넣으면 오류 대신 호스트명 xn--o70b841ad5c9qb763b 이 나옵니다. 주소를 넣었는지 다시 확인해 주세요.

    URL 파서 입력창에 포트·경로·쿼리가 모두 붙은 주소를 넣고 샘플 버튼이 옆에 놓인 화면

  2. 프로토콜·호스트명·포트·경로·해시·Origin이 행으로 나뉘어 표시됩니다. 포트·해시·사용자명·비밀번호는 값이 있을 때만 행이 나옵니다. 필요한 행을 클릭하면 그 값만 복사됩니다.

    주소가 프로토콜 https·호스트명 example.com·포트 8080·경로 /search/product·해시 #reviews·Origin으로 나뉘어 행마다 복사 버튼이 붙은 결과

  3. 쿼리 파라미터는 이름과 값으로 나뉘어 아래에 표로 정리됩니다.

    쿼리 파라미터가 q=노트북·category=electronics·page=2·sort=price로 이름과 값으로 나뉘어 정리된 표

이렇게 나옵니다

광고 링크를 넣으면 이렇게 나옵니다.

넣은 것
https://shop.example.com:443/items/12?q=%EC%82%AC%EA%B3%BC&utm_source=naver#reviews

나온 것
프로토콜   https
호스트명   shop.example.com
경로       /items/12
해시       #reviews
Origin    https://shop.example.com
쿼리       q          = 사과          ← 인코딩이 풀려서 보임
          utm_source = naver

포트 행이 없는 이유는 443이 https의 기본 포트라 브라우저가 주소에서 지우기 때문입니다. :8080 처럼 기본이 아닌 포트를 넣으면 포트 행이 나옵니다. 해시는 #을 포함한 모습 그대로 보여 줍니다.

알아두면 좋은 것

주소는 이렇게 나뉩니다

https:// shop.example.com :443 /items/12 ?q=사과 #reviews
└프로토콜┘ └───호스트────┘ └포트┘ └─경로──┘ └쿼리─┘ └해시┘
부분하는 일
프로토콜어떤 방식으로 통신할지 (https)
호스트어느 서버인지
포트서버의 어느 창구인지 (기본 포트는 생략되어 행이 안 나옴)
경로서버 안에서 어느 자원인지
쿼리추가로 넘기는 값들 (? 뒤)
해시페이지 안 위치 (# 뒤, 서버로 전송되지 않음)

이런 경우에는

리다이렉트 주소 안에 또 주소가 있어요

OAuth 같은 흐름에서는 redirect_uri 값 안에 또 다른 주소가 통째로 인코딩되어 들어갑니다. 쿼리 값은 풀어서 보여 주니, 그 주소를 다시 복사해 넣으면 한 겹씩 벗겨 볼 수 있습니다.

값이 이상하게 잘려요

주소를 만들 때 값 안의 &= 를 인코딩하지 않으면 파라미터 경계가 어긋납니다. 이럴 때는 URL 인코더로 값만 따로 인코딩해서 다시 붙이세요.

해시(`#`)는 서버가 모릅니다

# 뒤는 브라우저 안에서만 쓰이고 서버로 전송되지 않습니다. 서버 로그에 안 찍힌다고 이상한 게 아닙니다.

URL 파서가 필요한 순간

긴 주소에서 값 하나를 찾는 일이 잦다면 URL 파서가 그 수고를 덜어 줍니다.

상황이유
광고 링크 검수추적 항목이 제대로 붙었는지 확인
긴 주소에서 값 하나 찾기눈으로 훑지 않고 표에서 바로
리다이렉트 주소 확인어디로 넘어가는지 풀어서 보기
오류 제보 분석어떤 값이 넘어왔는지 확인

파라미터가 무엇인지 알면 편합니다

주소의 ? 뒤에 붙는 이름=값 조각들입니다. 흔히 보이는 것들은 이렇습니다.

이름
q, query, keyword검색어
page, p몇 번째 페이지
utm_source어디서 들어왔는지 추적용
redirect, next처리 후 이동할 주소
id, no글·상품 번호

특히 redirect 계열은 낯선 링크에서 확인해 볼 만한 값입니다. 엉뚱한 주소가 들어 있다면 누르지 않는 게 안전합니다.

이 도구로는 안 되는 것

  • 주소로 접속하지 않습니다. 문자열만 분석합니다
  • 경로와 해시의 인코딩은 풀지 않습니다 — 풀어 보려면 URL 인코더에 그 값만 넣어 디코딩하세요
  • 주소가 안전한지 판단해 주지 않습니다 — 어떤 값이 들어 있는지만 보여 줍니다
  • 추적 링크를 만들려면 UTM 생성기
  • 한글 도메인은 퓨니코드 변환기가 맞습니다

용어 설명

쿼리 파라미터

주소 ? 뒤에 붙는 이름=값 쌍입니다. &로 여러 개를 이어 붙이며, 검색어·필터·추적 정보 등을 서버에 넘길 때 씁니다.

Origin

프로토콜 + 호스트 + 포트를 묶은 값입니다. 브라우저가 "같은 사이트인지" 판단하는 기준이라, 다른 도메인 요청을 막는 규칙에서 자주 등장합니다.

URL 파서 자주 묻는 질문

주소를 어떤 형식까지 인식하나요?

http·https 등 스킴이 붙은 표준 URL은 물론, 스킴 없이 도메인부터 시작하는 주소(example.com/path?q=1)도 https로 간주해 파싱합니다. 다만 주소 중간에 공백이나 URL에 쓸 수 없는 문자가 있으면 오류로 안내하니, 메신저에서 복사할 때 줄바꿈이 섞이지 않았는지 확인해 주세요.

%EB%85%B8… 처럼 인코딩된 값은 어떻게 표시되나요?

쿼리 파라미터 값의 퍼센트 인코딩을 자동으로 풀어 디코딩된 글자로 보여줍니다. 한글 검색어나 인코딩된 리다이렉트 주소도 원래 형태로 읽을 수 있습니다. 반대로 인코딩된 원본 문자열이 필요하면 URL 인코더 도구를 함께 쓰면 됩니다.

같은 이름의 파라미터가 여러 개 있으면 어떻게 되나요?

중복을 합치지 않고 URL에 나온 순서대로 각각 별도 행으로 표시합니다. 광고 링크 검수처럼 파라미터가 실수로 두 번 붙은 걸 찾아야 하는 경우에 그대로 드러나도록 한 동작입니다.

포트를 넣었는데 포트 행이 안 보입니다.

http의 80, https의 443처럼 프로토콜 기본 포트는 URL 표준상 생략되기 때문에 포트 행이 표시되지 않습니다. 8080·3000 같은 비표준 포트를 쓴 주소에서만 포트 행이 나타납니다.

마지막 업데이트: