URL과 URI에 대해서 알아보자

Uniform Resource Identifier
위치나 이름 또는 둘 다로 리소스를 식별한다.
인터넷 상에 있는 자원을 나타내는 유일한 주소를 말한다.
자원?
웹 아키텍처의 일부가 될 수 있는 문서, 파일, 이미지, 웹 페이지 등의 모든 것을 말합니다
scheme:[//authority]path[?query][#fragment]
Scheme
스키마는 주소 지정 시스템을 정의하는 URI의 첫 번째 구성 요소로 경우에 따라 자원 접근을 위한 프로토콜일 수 있다.
http, https 등이 대표적인 스키마다.
authority
scheme 뒤의 이중 슬래쉬 뒤에 오는 요소로 userinfo, host, port로 구분됨
userinfo는 :로 구분되는 username과 password정보이며
host는 ip주소 또는 도메인으로 구성되는 자원이 존재하는 곳에 대한 위치이며
port는 해당 주소(서버)에 연결하기 위한 통로 정보이다.
path
디렉터리구조에 존재하는 자원의 위치에 대해 표현해주는 데이터 세그먼트 시퀀스이다.
scheme:host/ : 특정 자원 위치에 대한 표시가 없음
scheme:host/posts : posts 자원에 대한 위치 표시
query
비계층적 질의를 통해 특정 자원을 한정지어주는 역할을 하는 key-value 구조의 문자열이다.
fragment
보조 리소스의 위치에 대한 방향을 제공해주는 요소로 #해시 를 붙여 사옹하며
uri의 마지막에 위치한다.
예시
mongodb+srv://pp0309:1234@cluster0.abcdeh.mongodb.net/?retryWrites=true&w=majority
mongodb를 연결할 때 보았던 것이다.
해석해보면 다음과 같은 구조를 가진 uri인 것이다.
scheme://username:password@host path(/) queryString
Uniform Resource Locator
네트워크 상에서 자원이 어디있는지 알려주기 위한 규약
사이트 도메인 뿐 아니라 자원의 위치 (path)를 포함한 개념이지만
일반적으로 사이트 도메인을 URL이라고 표현하기도 한다.
scheme://user:password@host:port/url-path
RFC 1738에서 정의되어 있으며, 지정된 scheme에 따라 표현방법이 다를 수 있다.
일반적으로 많이 사용하는 HTTP URL의 scheme은 다음과 같이 표현한다
모든 URL은 URI이지만 모든 URI가 URL인 것은 아님