URI(Uniform Resource Identifier, 통합 자원 식별자)
개념
- 인터넷에 있는 자원을 나타내는 유일한 주소(URL이 존재하기 전 표준이 없을 때 개발자들이 다양한 방식의 URI 형식을 만들어 사용함)
- 인터넷 프로토콜에 항상 붙어 다님
- URI의 하위 개념으로 URL과 URN이 있음
구성
- scheme(가장 먼저 작성)
- 통신 방식(프로토콜)을 결정
- 일반적인 웹 브라우저에서는 http(s)를 사용 - hosts
- 웹 서버의 이름, 도메인, IP를 사용하며 주소를 나타냄 - url-path
- 웹 서버에서 지정한 루트 디렉토리부터 시작해 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타냄 - query
- 웹 서버에 보내는 추가적인 질문
URL(Uniform Resource Locator, 파일식별자, 유일자원지시기)
개념
- 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄
- URL은 FTP, SMTP 등 다른 프로토콜에서도 사용 가능
- 웹 상의 주소를 나타내는 문자열 -> 더 효율적으로 리소스에 접근하기 위해 클린한 URL 작성을 위한 방법론들이 생겨남, REST API도 그 중 하나
- 흔히 웹 사이트 주소로 알고 있지만, 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있음
- 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 함
- URI 자체는 신원 확인만 제공 -> URI가 존재한다고 해당 자원에 접근 보장 X
URI vs URL
- URL은 어떻게 리소스를 얻을 것이고 어디에서 가져와야하는지 명시하는 것이 URI
- 구조 : [scheme]://[사용자]: [비밀번호]@[호스트]:[포트]/[경로];[파라미터]?[쿼리]#[프래그먼트]
구조 | 내용 |
scheme | 프로토콜 정보 |
사용자 이름 | FTP 등의 sheme은 리소스에 접근하기 위해 사용자 이름이 필요함 |
비밀번호 | 사용자 비밀번호 |
호스트 | 서버의 도메인 주소(혹은 IP 주소) |
포트 | 해당 scheme으로 접근할 수 있도록 열어 놓은 포트번호 |
경로 | 서버 내 리소스의 위치 정보 |
파라미터 | 특정 scheme에서의 입력 파라미터 |
쿼리 | 앱에 파라미터를 전달 |
프래그먼트 | 내부 리소스 내의 특정 절을 가리킬 수 있는 프래그먼트 조각 |
URI 표시 방법
- Path Variable : 어떤 특정한 자원을 보여줄 때 사용 ex) /users/12
- Query Parameter : 자원을 정렬이나 필터링할 때 사용 ex) /users?nickname=hi
URN(Uniform Resource Name, 통합 자원 이름)
개념
- URI 표준 포맷 중 하나로, 이름으로 리소스를 특정하는 URI
- http와 같은 프로토콜을 제외하고 리소스의 name을 가리키는데 사용됨
- 리소스를 영구적이고 유일하게 식별할 수 있는 URI
- 리소스 접근방법과 웹 상의 위치가 표기되지 않음
- 리소스 자체에 부여된 영구적이고 유일한 이름이고 변하지 않음
- 실제 자원을 찾기 위해서는 URN을 URL로 변환하여 이용
- 영속적이고 독립적인 위치의 자원
- 실제로 위치를 지정하지 않은 인터넷 상의 자원
- 자원의 이름을 나타내는 말
- URL의 단점을 극복하기 위해 등장
- 리소스가 그 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없음
- 지속 통합 자원 지시자(Persistent Uniform Resource Locator, PUPL)를 사용하면 URL로 URN 기능 제공 가능
[참고자료]
https://backhero.tistory.com/7
https://sedangdang.tistory.com/282
https://goyunji.tistory.com/134?category=970134
https://blog.itcode.dev/posts/2021/05/29/uri-url-urn
https://grape-blog.tistory.com/10
https://blog.naver.com/ghdalswl77/222454095003
https://computer-science-student.tistory.com/517
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-URL-URI-%EC%B0%A8%EC%9D%B4
'CS > WEB' 카테고리의 다른 글
HTTP와 HTTPS 개념, 차이점 (0) | 2022.10.25 |
---|---|
SSO(Single Sign-On)란? (0) | 2022.10.24 |
OpenID, OIDC(OpenID Connect)란? (0) | 2022.10.24 |
Authentication(인증) vs Authorization (인가) (0) | 2022.10.24 |
OAuth란? (OAuth2.0) (0) | 2022.10.24 |