URI와 URL 뭐가 다른 걸까요?
아마 단어로 알아보는 게 가장 직관적이고 쉬울 것 같습니다.
공통점 = Uniform Resource
URI와 URL...
단어만 두고 봤을 때, 공통점은 UR입니다.
UR은 Uniform Resource.
- Uniform: 통일된 형식을 따릅니다.
- Resource: 자원을 나타냅니다. Ex) 문서, 이미지, 서비스 등의 인터넷에 존재하는 모든 것.
오케이.
UR = '통일된 자원'
즉, Uniform Resource는 인터넷 상의 자원을 고유하고 일관되게 식별하기 위한 체계를 의미하며, 이를 통해 자원 간의 충돌을 방지하고 일관된 접근 방식을 제공합니다.
URI = Identifier
I(Identifier)는 식별자를 뜻합니다.
즉, URI는 자원을 고유하게 식별하는 문자열입니다.
URI는 자원의 위치와 상관없이 자원 자체를 식별할 수 있습니다.
URI의 두 가지 형태
- URL (Uniform Resource Locator): 자원의 위치
- URN (Uniform Resource Name): 자원의 이름
자, 여기까지 왔다면 URL은 쉽습니다.
URL = Locator
위의 URI 설명에서 보셨듯, URI는 포괄적인 개념입니다.
그 안에서 URL과 URN으로 나뉘죠.
URL의 구성요소
- 프로토콜 (Scheme)
- 자원에 접근하는 데 사용할 프로토콜을 지정합니다.
- 예: http, https, ftp.
- 예시: https://
- 도메인 (Domain)
- 자원이 위치한 서버의 주소를 나타냅니다.
- 예: www.example.com.
- 예시: https://www.example.com
- 포트 번호 (Port)
- 서버의 특정 포트 번호를 지정할 수 있습니다. 생략할 경우 기본 포트가 사용됩니다.
- 예: :80 (HTTP의 기본 포트), :443 (HTTPS의 기본 포트).
- 예시: https://www.example.com:443
- 경로 (Path)
- 서버 내에서 자원의 경로를 지정합니다.
- 예: /index.html, /images/photo.jpg.
- 예시: https://www.example.com/index.html
- 쿼리 문자열 (Query String)
- 자원에 대한 추가적인 매개변수 정보를 제공합니다. ?로 시작하며, &로 구분된 키-값 쌍으로 구성됩니다.
- 예: ?id=123&category=books.
- 예시: https://www.example.com/search?q=openai
- 프래그먼트 (Fragment)
- 자원 내의 특정 섹션을 지정합니다. #로 시작합니다.
- 예: #section2.
- 예시: https://www.example.com/index.html#section2
URI & URL, 예시를 통한 비교
- URI (자원 식별자): urn:isbn:0451450523 (특정 책의 ISBN)
- URL (자원 위치): https://www.example.com/index.html (특정 웹페이지의 주소)