예시
입력 (URL)
https://user:pass@yutils.dev:8080/tools/base64?q=hello&lang=ko#preview
출력 (구성 요소)
protocol: https:
user: user
pass: pass
host: yutils.dev:8080
hostname: yutils.dev
port: 8080
path: /tools/base64
query: { q: hello, lang: ko }
hash: #preview참고
WHATWG URL 표준 기반 — 브라우저 내장 `URL` 객체와 동일 결과. 쿼리는 자동 파싱돼 키-값 객체로 표시.
사용법 / 자주 묻는 질문
이런 경우 사용하세요
- 복잡한 URL 의 구성 요소 한 번에 보기
- 쿼리 파라미터 디버깅 — `utm_*`, 추적 코드 분석
- redirect 체인의 각 단계 URL 분해
- subdomain · port · path · hash 정확한 위치 확인
- URL 인코딩된 쿼리 값의 디코드
자주 묻는 질문
- Q.WHATWG vs RFC 3986?
- A.RFC 3986 은 1990년대 spec, WHATWG URL Living Standard 는 브라우저 실제 동작 기준. 둘이 약간 다른 부분(예: trailing slash 처리)이 있는데 브라우저는 WHATWG 를 따릅니다. 본 도구도 WHATWG.
- Q.relative URL 도 파싱되나요?
- A.base URL 이 필요합니다. `/tools/base64` 단독은 host 가 없어 파싱 불가 — `https://example.com/tools/base64` 처럼 절대형으로 입력하세요.
- Q.같은 키가 여러 번 있으면?
- A.예: `?tag=a&tag=b`. URLSearchParams 는 `getAll('tag')` 로 배열 반환. 본 도구는 마지막 값만 표시 — 자세한 분석엔 jq 등 별도 도구.
재미있는 사실
URL 의 모던 표준은 두 가지 — IETF 의 RFC 3986 (2005, static) 과 WHATWG 의 URL Living Standard (2012~, 계속 갱신). 두 표준이 미세하게 다른데, 브라우저는 사실상 WHATWG 를 따릅니다.
WHATWG URL StandardWHATWG URL parser 는 'living standard' 원칙으로 실제 브라우저 동작에 맞춥니다 — backslash 를 forward slash 로 해석, 공백 무시 등 RFC 3986 가 거부하는 것도 받아들임. '실세계 호환 우선'.
Wikipedia — URL standardsJavaScript 의 `new URL(...)` 생성자는 2017년 정도부터 모든 모던 브라우저·Node.js 에 정착됐습니다. 그 전엔 정규식·`document.createElement('a')` hack 같은 방법이 만연 — 매번 미세하게 다른 결과를 냈어요. 현재는 `URL.canParse(str)` (2023+) 으로 검증도 가능.
MDN — URL constructor
관련 도구
- Base64 인코딩 / 디코딩
텍스트를 Base64로 인코딩하거나 디코딩합니다. 브라우저에서 즉시 실행되며 서버로 데이터가 전송되지 않습니다.
- URL 인코딩 / 디코딩
URL에 사용할 수 있도록 텍스트를 퍼센트 인코딩하거나 인코딩된 URL을 디코딩합니다. 브라우저에서 즉시 실행됩니다.
- UUID / ULID 생성기
UUID v4(랜덤) · UUID v7(시간 순서, RFC 9562) · ULID를 브라우저에서 생성합니다.
- JWT 디코더
JWT(JSON Web Token)의 header와 payload를 디코딩하여 표시합니다. 서명 검증은 수행하지 않으며(공개키 필요), 토큰은 브라우저에서만 처리됩니다.
- JWT 생성기 (HMAC)
HS256/HS384/HS512(HMAC-SHA) 알고리즘으로 서명된 JWT를 생성합니다. payload·secret 모두 브라우저에서만 처리 — Web Crypto API 기반.
- SHA 해시
텍스트의 SHA-1·SHA-256·SHA-384·SHA-512 해시를 계산합니다. 브라우저의 Web Crypto API를 사용하며 데이터가 서버로 전송되지 않습니다.
- Hex 인코딩 / 디코딩
텍스트를 16진수로 인코딩하거나 디코딩합니다. UTF-8을 자동 처리하며 공백을 무시합니다.
- HTML 엔티티 인코딩 / 디코딩
HTML 특수 문자(&, <, >, ", ')를 엔티티로 인코딩하거나, 이름/숫자 엔티티를 텍스트로 디코딩합니다.
- 비밀번호 생성기
암호학적으로 안전한 비밀번호·토큰·랜덤 문자열·패스프레이즈를 생성하고 엔트로피를 표시합니다.
- 진수 변환기
BigInt 기반으로 큰 정수까지 2/8/10/16/36진수 변환. 0b/0o/0x 자동 감지.
- HMAC 생성기
Web Crypto API로 SHA-1/256/384/512 HMAC을 계산합니다. 서명·검증 키 기반.
- HMAC 검증기
주어진 HMAC 서명이 message + secret 으로 만든 값과 일치하는지 검증합니다. Web Crypto API + constant-time 비교.
- MD5 해시
텍스트의 MD5 해시를 계산합니다. 주의: MD5는 보안용으로 부적합 — 체크섬·레거시 호환에만 사용.
- Punycode (국제화 도메인)
한글·다국어 도메인을 Punycode(xn-- ASCII)로 상호 변환합니다. 브라우저 native URL 사용.
- HTTP 상태 코드
HTTP 상태 코드(1xx-5xx)를 검색·탐색합니다. 설명과 일반 사용 사례 포함.
- User-Agent 파서
User-Agent 문자열을 브라우저·OS·기기·엔진별로 분해합니다.
- Bcrypt 해시
Bcrypt로 비밀번호를 해시하거나 기존 해시와 평문을 검증합니다. salt rounds 조정 가능.
- 쿠키 파서
Cookie 또는 Set-Cookie 문자열을 표로 분해합니다. percent-encoded 값 복원 + Set-Cookie 속성(Path/Domain/Max-Age/SameSite/HttpOnly/Secure) 인식.
- IP / CIDR 계산기
IPv4 주소와 CIDR로 네트워크 주소·브로드캐스트·호스트 범위·서브넷 마스크·호스트 수를 계산합니다.
- cURL 빌더
URL·method·헤더·본문으로 cURL 명령을 만듭니다. JSON content-type 자동.