URL 및 쿼리 문자열
URL 및 쿼리 문자열
URL 레이어는 WHATWG 스타일 파싱을 구현합니다 — 브라우저가 적용하는 동일한 동작을 — 따라서 문서에서 추출된 URL이 실제 사용자 에이전트에서와 같이 해석되고 정규화됩니다.
파싱 및 검증
URL.parse()는 절대 또는 상대 URL을 파싱합니다; URL.can_parse()는 객체를 생성하지 않고 유효성을 판단합니다. 파싱 실패 시 타입화된 URLParseError가 발생합니다.
쿼리 문자열
URLSearchParams는 쿼리 매개변수를 읽고 편집합니다: append(), get(), get_all(), has(), 및 delete()는 라운드 트립을 다루며 다중값 의미를 보존합니다.
팁 및 모범 사례
- 필터에서 저렴한 검증을 위해
can_parse()를 사용하고; 구성 요소가 필요할 때만parse()로 구성하십시오. - 쿼리 키는 반복될 수 있다는 점을 기억하십시오 — 매개변수가 한 번 이상 나타날 수 있을 때는
get_all()를 사용하세요. - 정규식으로 사전 검증하기보다
URLParseError를 잡으세요.
일반적인 문제
| 문제 | 원인 | 수정 |
|---|---|---|
| 상대 URL을 구문 분석하지 못함 | 기본값이 제공되지 않음 | URL.parse()에 따라 기본값을 제공하십시오 |
| 첫 번째 쿼리 값만 반환됨 | 반복된 키에 get() 사용됨 | 사용 get_all() |
| 구성 요소의 이상한 문자 | WHATWG 정규화가 작동 중 | 예상 — 이는 브라우저 동작과 일치합니다 |
FAQ
파싱이 WHATWG 표준을 따릅니까?
예 — 정규화와 구성 요소 분할은 브라우저 동작을 그대로 반영합니다.
파싱하지 않고 URL을 확인하려면 어떻게 해야 하나요?
URL.can_parse()은 객체 생성 없이 유효성을 반환합니다.
쿼리 문자열을 제자리에서 편집할 수 있나요?
예 — URLSearchParams은 append/get/has/delete 라운드트립을 지원합니다.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
URL.parse | URL 구문 분석 |
URL.can_parse | 구성 없이 유효성 검사 |
URLSearchParams.append | 쿼리 매개변수 추가 |
URLSearchParams.get_all | 키에 대한 모든 값 |
URLParseError | 타입 파싱 실패 |