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인 것은 아님