URL은 Uniform Resource Locator의 약자로, 인터넷에서 특정 리소스의 위치를 나타냅니다. URL은 리소스의 위치를 나타내는 스키마(scheme), 호스트명(host name), 포트 번호(port number), 경로(path) 등으로 구성됩니다.
스키마(Scheme): URI를 처리하기 위해 사용되는 프로토콜(예: http, ftp, mailto)을 나타냅니다.
호스트(Host): 리소스가 위치한 인터넷 호스트의 이름이나 IP 주소를 나타냅니다.
경로(Path): 리소스의 경로를 나타냅니다. 경로는 슬래시(/)로 구분된 문자열입니다.
포트(Port): 리소스에 접근하기 위해 사용되는 포트 번호를 나타냅니다. 포트 번호는 스키마에 따라 기본값이 있습니다.
경로(Path): 리소스의 경로를 나타냅니다. 경로는 슬래시(/)로 구분된 문자열입니다.
ex) https://velog.io/@atory
URI는 URL을 포함하는 개념으로 URL의 구성 요소에 쿼리(query)와 프레그먼트(fragment)를 추가 할 수 있습니다. 또한 보안상의 이유로 잘 사용하지 않지만 인증 정보도 포함 시킬 수 있습니다.
인증 정보(Authority): URI의 인증 정보는 사용자 이름과 비밀번호, 그리고 호스트명과 포트 번호를 포함합니다. 예를 들어, "user:password@example.com:8080"과 같이 사용됩니다.
쿼리(Query): URI에 전달되는 매개변수와 값의 쌍을 나타냅니다. 쿼리 문자열은 물음표(?)로 시작하며, 각 매개변수는 & 문자로 구분됩니다.
프래그먼트(Fragment): 리소스 내의 특정 위치를 나타냅니다. 프래그먼트는 샵(#) 문자로 시작하며, 리소스의 특정 부분을 가리킵니다.
ex 1) https://www.youtube.com/results?search_query=rest+api
위의 코드에서 ?를 시작으로 쿼리가 시작되고 search_query=rest+api가 전달된다.
ex2) https://www.rfc-editor.org/rfc/rfc7231#section-4.2.2
위의 코드에서 #으로 시작해서 리소스에서 section-4.2.2를 가리킨다.
URI는 URL을 포함한다.