728x90
728x90
URI 방식과 URL 방식에 대한 정리

- URL : Uniform Resource Locator, 통합 자원 지시자
- URN : Uniform Resource Name, 통합 자원 이름
- URI : Uniform Resource Identifier, 통합 자원 식별자
- 가장 큰 개념으로, URI의 하위 개념으로 URL과 URN을 포함
1. URL : 웹 주소
- Resource의 정확한 위치 정보(파일의 위치)를 나타냄
- URL을 통해 Resource가 어디에 있는지 어떻게 접근할 수 있는지 알 수 있음
- ex) https://www.naver.com/ - 네이버의 URL
- ex) https://www.youtube.com/feed/subscriptions - 유투브의 구독한 목록 URL
- ex) https://search.shopping.naver.com/best/today?rankedDate=20220922 - 네이버 쇼핑의 오늘의 베스트 카테고리 URL
2. URL의 구조
명칭 | 설명 | 부분 |
Scheme | 통신(방식) 프로토콜 결정 | file:// http:// https:// |
host(domain) | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP | 127.0.0.1 www.google.com |
:port | 웹 서버에 접속하기 위한 통로 | :80 :443 :3000 |
/path | 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동여앙 등의 파일 위치까지의 경로 | /search /Users/username/Desktop |
?query | 리소스의 형식 범위를 좁히기 위한 추가 질문 key=value 형식 |
q=JavaScript |
#fragment | URL이 지정하는 자원의 세부 부분을 지정할 때(세부 주제를 찾을 때) | #section1 |
3. URI
- 자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서 URL의 의미를 포함
- URI의 존재는 인터네셍서 요구되는 기본조건으로써 인터넷 프로토콜에 항상 붙어다니며, URI의 하위 개념으로 URL, URN이 있음
- 인터넷상의 리소스 자원 자체를 식별하는 고유한 문자열 시퀀스
4. URI와 URL 구분
- 주소에 식별자가 있으면 URI
- 리소스 위치까지만 나타내면 URL
5. URL의 한계
- 리소스의 위치를 옮기면 더이상 URL을 사용할 수 없음
aspring.tistory.com/10 해당 링크의 주소를 aspring.tistory.com/study/10으로 주소를 바꾸면, 기존에 구글에 노출되어 있던 aspring.tistory.com/10 링크에 접속 시 해당 페이지는 찾을 수 없게 됨
ex1) https://aspring.tistory.com/study
→ aspring.tistory.com에서 study 라는 경로를 나타냄 → study는 리소스의 실제 위치 : URL
ex2) https://aspring.tistory.com/study /12
→ aspring.tistory.com에서 study라는 자원의 경로를 나타내는 부분까지는 URL
→ /12는 식별자이므로 ‘https:// aspring .tistory.com/study’ URL을 포함한 URI
ex3) https://aspring .tistory.com/study?page=12
→ aspring.tistory.com/study까지는 자원의 실제 위치를 나타내기 때문에 URL,
?page=12라는 query가 붙었으므로, ‘https:// aspring.tistory.com/study’라는 URL을 포함한 URI
6. URN
- Resource의 위치와 상관없이 식별 가능한 고유한 이름 역할
- 이름이 변하지 않는한, 리소스 위치가 변경되더라도 문제없이 동작
- 즉, 리소스 위치와 상관없이 이름으로만 식별할 수 있다는 개념
참고
728x90
728x90
'프로그래밍' 카테고리의 다른 글
[HTTP] 포트, 통신 프로토콜 (0) | 2023.11.23 |
---|---|
어떨 때 queryString 방식을 사용하고, 어떨때 Path Variable 방식을 사용해야하는가? (2) | 2023.11.21 |
[MySQL] MySQL 8.0.21 / MySQL Workbench 설치 (0) | 2023.11.20 |
[Nuxt] Nuxt.js 프로젝트 시작하기 (0) | 2023.11.14 |
[yarn 설치] yarn 설치하기 (0) | 2023.11.14 |