URL 파서
웹훅이 오작동하거나 추적 링크가 잘못된 파라미터를 실어 보낼 때, 가장 빠른 방법은 URL을 분해해 각 부분을 읽는 것입니다. 아무 URL이나 붙여넣으면 이 파서가 구성 요소로 나눕니다: 스킴, 사용자 이름과 비밀번호, 호스트, 포트, 경로, 쿼리 문자열, 프래그먼트로 나눈 뒤, 쿼리를 키-값 쌍의 표로 펼칩니다. 저희 서버에서 PHP 표준 URL 파서로 동작하므로, PHP 백엔드가 같은 링크를 어떻게 읽는지 그대로 볼 수 있습니다.
URL을 파싱하는 방법
-
1
URL 붙여넣기
절대 URL이든 상대 URL이든 아무 URL이나 입력하세요. 누를 버튼은 없으며, 입력하는 대로 파싱됩니다.
-
2
구성 요소 읽기
찾아낸 스킴, 호스트, 포트, 사용자, 비밀번호, 경로, 쿼리, 프래그먼트가 표에 채워집니다. 비어 있는 부분은 대시로 표시됩니다.
-
3
쿼리 펼치기
각 `key=value` 쌍이 별도의 행에 표시되며, 퍼센트 인코딩과 `+`는 실제 문자로 디코딩됩니다.
-
4
파라미터 복사
복사 버튼으로 모든 쿼리 파라미터를 한 번에 `key=value` 형식의 줄로 가져와 API 클라이언트에 붙여넣을 수 있습니다.
URL의 구조
https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile를 예로 들면, 파서는 이를 다음과 같이 분해합니다.
| 구성 요소 | 값 |
|---|---|
| scheme | https |
| user | user |
| pass | pass |
| host | api.example.com |
| port | 8443 |
| path | /v1/users |
| query | page=2&sort=name |
| fragment | profile |
이어서 쿼리 문자열은 별도의 표로 펼쳐집니다: page = 2, sort = name.
쿼리 문자열을 읽는 방식
- 값은 퍼센트 인코딩에서 디코딩되고
+는 공백이 되므로,q=hello%20world와q=hello+world는 모두hello world로 읽힙니다. - 쌍은 첫 번째
=에서 나뉘므로,token=a=b=c는a=b=c를 값으로 유지합니다. - 반복되는 키는 마지막 값만 유지합니다:
?id=1&id=2는id=2를 반환합니다. 모든 값을 유지하려면 배열 구문id[]=1&id[]=2를 사용하세요. 목록으로 표시됩니다. filter[status]=open처럼 대괄호가 있는 키는 중첩 구조가 되어 JSON으로 표시됩니다.
포트, 경로, 프래그먼트
- 포트는 작성된 그대로 표시됩니다. 무엇도 추가하거나 제거하지 않으므로
:443은443으로 나타나고, 포트가 없는 URL은 해당 행을 비워 둡니다. - 끝의 슬래시는 경로를 바꿉니다:
https://a.com의 경로는 비어 있고,https://a.com/의 경로는/입니다. - 프래그먼트(
#뒤)는 브라우저만 사용하는 값으로, 앵커로 스크롤하거나 클라이언트 측 라우터를 구동하는 데 쓰입니다. 서버에는 절대 도달하지 않으므로, 백엔드가 읽어야 하는 것은 쿼리 문자열에 넣어야 합니다. - 호스트는 입력한 그대로 반환됩니다. 이 파서는 국제화된(비ASCII) 도메인을 퓨니코드로 변환하거나 그 반대로 변환하지 않습니다.
자주 묻는 질문
네. /v1/users?ref=nav 같은 상대 링크에는 스킴이나 호스트가 없으므로 해당 행은 비어 있고, 경로와 쿼리는 그대로 채워집니다. http://a.com:port처럼 포트가 숫자가 아닌 잘못된 형식의 URL만 완전히 거부됩니다.
마지막 값만 유지되므로 ?id=1&id=2는 id = 2를 반환하며, 이는 PHP 백엔드가 읽는 방식과 똑같습니다. 모든 값이 필요하면 배열 구문 id[]=1&id[]=2를 사용하세요. 목록으로 표시됩니다.
파서는 포트를 작성된 그대로 보고합니다. 기본 포트를 제거하거나 빠진 포트를 추가하는 일이 절대 없으므로, 포트가 없는 URL은 빈 행을 보여주고 https://a.com:443은 443을 보여줍니다.
이 도구는 브라우저뿐 아니라 서버에서 동작하므로, URL은 파싱을 위해 저희 서버로 전송됩니다. URL 자체는 저장하지 않으며, 파서가 사용되었다는 익명 집계만 기록합니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
FPS 카운터
requestAnimationFrame으로 브라우저 FPS를 측정하세요. 스무딩, 최소/최대 프레임레이트, 경고 임계값, 선택형 그래프를 제공합니다. 업로드나 API 없이 로컬에서 실행됩니다.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
ASCII 이진수 변환기
ASCII 문자열을 이진수 표현으로 변환하세요. 각 문자는 8비트가 되고 공백으로 구분되어 프로토콜 추적이나 과제에 바로 붙여넣기 좋습니다.
색상 틴트 생성기
기준 색의 밝은 틴트를 생성합니다. 디자인 시스템 토큰, 배경, 호버 상태를 위한 3-20단계 스케일.
이 도구는 다른 언어로도 제공됩니다
- Analizador de URL [ES]
- Parser URL [PL]
- ตัวแยกวิเคราะห์ URL [TH]
- URLパーサー [JA]
- Trình phân tích URL [VI]
- Analisador de URL [PT]
- URL-parser [SV]
- Analyseur d'URL [FR]
- محلل عناوين URL [AR]
- URL-Parser [DE]
- URL Parser [ID]
- URL-parser [NL]
- URL Parser [EN]
- Parser URL [IT]
- Парсер URL [RU]
- URL Ayrıştırıcı [TR]
- URL解析器 [ZH]