# 질의 응답 상황
[면접관]
지원자님 Web 개발을 주로 하셨는데 URI와 URL에 대해서 간략하게 설명해주세요. |
[막개발자]
네 우선 URI가 URL 보다 더 상위개념 입니다. URI는 인터넷상의 자원의 식별자 이고 URL은 인터넷상의 자원의 위치를 의미합니다. 즉 프로토콜(Protocol), 도메인(Domain), 포트(Port), 패스(Pass) 까지가 URL이고, 거기에 쿼리스트링(Query String)까지 들어가면 URI 입니다. |
# 상세 설명
1. URI (Uniform Resource Identifier)와 URL (Uniform Resource Locator)
1. URI (Uniform Resource Identifier)
URI는 인터넷에서 리소스를 식별하는 데 사용되는 문자열입니다.
리소스는 웹 페이지, 이미지, 동영상, 파일 등 인터넷에 존재하는 모든 것을 의미합니다.
구성 요소:
- 스킴(Scheme): 리소스에 접근하는 프로토콜 (http, https, ftp 등).
- 식별자: 리소스를 식별하는 정보 (예: 도메인, 경로, 쿼리 등).
역할:
- 리소스를 고유하게 식별하기 위해 사용.
예:
- https://example.com/resource?id=123
- mailto:someone@example.com
2. URL (Uniform Resource Locator)
URL은 URI의 하위 개념으로, 특정 리소스의 위치를 명확하게 나타냅니다.
즉, URL은 리소스를 가리키는 데 초점이 맞춰져 있습니다.
구성 요소:
- 스킴(Scheme): 리소스에 접근하기 위한 프로토콜 (http, ftp 등).
- 호스트명(Host): 리소스가 위치한 서버의 주소 (example.com).
- 경로(Path): 서버 내에서 리소스의 경로 (/resource).
- 포트번호(선택적): 특정 포트 지정 (:8080).
- 쿼리(Query): 추가적으로 필요한 데이터 (?id=123).
역할:
- 리소스의 위치를 지정하고 이를 접근하기 위한 경로를 제공합니다.
예:
3. URI와 URL의 관계
모든 URL은 URI에 포함되지만, 모든 URI가 URL인 것은 아닙니다.
URI는 리소스를 식별하기 위한 범용 개념이고, URL은 리소스의 위치를 명시한 URI의 특정 사례입니다.
4. 차이점
특징 | URI | URL |
정의 | 인터넷 리소스를 식별하기 위한 문자열 | 인터넷 리소스의 위치를 명확히 지정하는 문자열 |
포함 관계 | URL과 URN을 포함하는 상위 개념 | URI의 하위 개념 |
목적 | 리소스의 식별 | 리소스의 위치 지정 및 접근 |
형식 | 다양한 형태 (mailto:, isbn:, https: 등) | 리소스의 경로와 접근 방법을 포함 (https://, ftp:// 등) |
호스트명 포함 여부 | 반드시 포함되지 않을 수 있음 (mailto:, urn:isbn:... 등) | 반드시 포함 (https://example.com/resource) |
사용 예시 | mailto:someone@example.com, urn:isbn:0451450523 | https://example.com/resource?id=123 |
기능적 역할 | 리소스의 고유 식별자 역할 | 리소스에 대한 접근 경로 제공 |
범용성 | 더 추상적이고 광범위한 식별 기준 | 위치 정보로 구체적이고 명시적 |
5. URI와 URL의 예제 비교
URI 예제
- https://example.com/resource?id=123
→ URL이자 URI. (리소스의 위치를 포함하여, 식별과 접근이 모두 가능함.) - urn:isbn:0451450523
→ URI만 해당. (리소스의 위치는 없고, 리소스를 고유하게 식별하는 정보만 포함.)
URL 예제
- https://example.com/resource
→ 리소스의 위치를 지정하고, 이를 접근할 수 있음.
결론
- URI: 인터넷 리소스의 식별. (포괄적 개념)
- URL: 인터넷 리소스의 위치를 지정하여 접근 가능. (특수 사례)
'[이직 면접] 질의 응답' 카테고리의 다른 글
[Spring Framework] 어노테이션(Annotation)에 대해서 말씀하세요 (0) | 2021.01.19 |
---|---|
[JavaScript] Ajax와 Fetch에 대해서 말씀하세요 (0) | 2021.01.06 |
[Spring Framework] Spring Framework 동작방식에 대해서 설명하세요. (0) | 2020.12.31 |
[Web 개발 기본] Framework이란 무엇인지 설명하세요. (0) | 2020.12.29 |
[Web 개발 기본] DB에서 Index가 무엇인지 설명하세요. (0) | 2020.12.29 |