URI를 구문 분석하는 것은 흥미로운 일입니다. 이전에는 이것이 그렇게 복잡할 수 있다는 것을 깨닫지 못했습니다.
URI
위키피디아의 URI에 대한 설명은 다음과 같습니다.
컴퓨터 용어에서 URI(Uniform Resource Identifier)는 인터넷 리소스의 이름을 식별하는 데 사용되는 문자열입니다. 이러한 유형의 식별을 통해 사용자는 특정 프로토콜을 통해 네트워크(일반적으로 World Wide Web이라고 함)의 리소스와 상호 작용할 수 있습니다. URI는 구문 및 관련 프로토콜을 결정하는 체계로 정의됩니다.
인터넷상의 URI 구성에 대한 설명을 인용하였으며, 이는 추후 URI 분석에서도 확인할 수 있습니다.
URI는 일반적으로 세 부분으로 구성됩니다.
1. 리소스 액세스를 위한 명명 메커니즘.
2. 리소스가 저장되는 호스트 이름입니다.
3. 경로로 표시되는 리소스 자체의 이름입니다.
아니면 둘이 일관성이 있는 것 같다고 할 수도 있겠네요.
URL 형식은 다음 세 부분으로 구성됩니다.
1. 계약(또는 서비스 방법)
2. 리소스가 저장된 호스트의 IP 주소(경우에 따라 포트 번호 포함)
3. 호스트 리소스의 특정 주소. , 디렉터리 및 파일 이름 등
URI 파싱
URI를 "확인"한다는 것은 상대 URI 참조를 절대 형식으로 변환하거나 역참조 가능한 URI 또는 URI 참조로 표시되는 리소스를 얻으려고 시도하여 URI를 역참조하는 것을 의미합니다. 문서 처리 소프트웨어의 "파싱" 부분은 두 가지 기능을 모두 제공하는 경우가 많습니다.
자바스크립트 URI 구문 분석
블로그에서 JS를 검색하는 경우를 예로 들면 해당 URL은 다음과 같습니다.
http://www.jb51.net/search/?q=js&type=
그리고
var 파서 = document.createElement('a');
파서.href = "http://www.jb51.net/search/?q=js&type="
그러면 해당 프로토콜, 포트 번호, 호스트, 특정 주소 등을 알 수 있습니다.
파서.프로토콜
파서.호스트;
파서.경로명;
파서.검색;
반환된 결과는
입니다.
프로토콜:http
호스트:www.jb51.net
경로명:/검색/
검색:?q=js&type=
위의 결과는 함께 추가되어 완전한 URI를 형성합니다. 나는 단지 parser.search의 이 부분을 잘 이해하지 못합니다. ? 숫자는 검색에 사용되는 매개변수여야 합니다.
이메일의 URI인 경우 URI는 다음과 같다고 가정합니다.
mailto:h@jb51.net?subject=hello
그럼
var 파서 = document.createElement('a');
parser.href = "mailto:h@jb51.net?subject=hello";
> 파서.프로토콜
"mailto:"
> 파서.경로명
"h@jb51.net"
>파서.검색
"?subject=안녕하세요"