0. 개요
살면서 URL이라는 단어는 많이 들어봤을 것이다. 하지만 URI, URN?은 좀 생소한 단어이다. 이번 게시물에서는 URI, URL, URN에 대해서 적어보도록 하겠다. 사실 각각의 개념들은 하나하나 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다.
1. URI
URI는 Uniform Resource Identifier의 줄임말이다. 각 단어를 하나씩 살펴보자면,
- Uniform: 리소스를 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것
- Identifier: 다른 항목과 구분하는데 필요한 정보
즉, URI는 리소스를 구분할 수 있는 식별자라고 할 수 있다. 이 URI를 통해 우리가 접근해야 하는 리소스가 어디있는지를 판별할 수 있게 된다.
2. URL, URN
1) URL
URL은 Uniform Resource Locator의 약자이다. 즉 Locator, 리소스가 있는 위치를 지정한다. 우리가 흔히 알고 있는 https://www.naver.com 이 URL의 예시이다.
2) URN
URN은 Uniform Resource Name의 약자이다. 즉 Name, 리소스에 이름을 부여하는 방식이다. urn:isbn:8960777331와 같이 이름을 부여하는데, URN 이름만으로는 리소스를 찾는 방식이 보편화되지 않았다... 즉, 잘 사용하지 않는 방식이다.
따라서 현재 자주 쓰는 방법은 URL이며, 아래 내용부터 URI와 URL을 같은 의미로 서술할 것이다.
3. URL 문법
URL의 문법은 다음과 같다. 예시와 함께 하나씩 살펴보자.
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
1) scheme
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
주로 프로토콜을 사용한다. 여기서 프로토콜이란, 어떤 방식으로 자원에 접근할 것인가 하는 약속이다. 예시로는 http, https, ftp 등이 있다.
2) userinfo
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
URL에 사용자 정보를 포함에서 인증하는 것으로, 거의 사용하지 않는다.
3) host
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
호스트명으로, 도메인명 혹은 IP주소를 입력해서 사용한다.
4) PORT
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
접속 포트 번호이다. 일반적으로 생략하며, 생략시 scheme에 기입한 프로토콜의 포트를 따라간다. http는 80, https는 443이다. 포트에 대한 추가 설명은 아래 게시글을 참고 바란다.
5) path
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
리소스의 경로를 나타낸다. 계층 구조이며, 아래 예시를 보면 이해가 빠를것이다.
ex) /home/file1.jpg, /members, /members/100
6) query
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
key=value의 형태로 구성이 되어있다. ?로 시작하며, 값을 추가하고 싶을 경우 &를 붙여주자.
ex) ?keyA=valueA&keyB=valueB
query string 혹은 query parameter라고 불리며, 정보를 담아 전달하는 역할을 하고 있다.
7) fragment
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
fragment는 서버에 전송하는 정보가 아닌, html 문서 상에서 "북마크"된 지점으로 스크롤 하도록 만들어준다.
위 내용은 김영한 님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식"의 내용과 강의자료를 토대로 작성된 게시글입니다.
강의 링크:
'cs > 컴퓨터 네트워크' 카테고리의 다른 글
HTTP 상태코드 (0) | 2023.01.12 |
---|---|
HTTP API 설계하는 법 (0) | 2023.01.12 |
HTTP 메서드(GET, POST, PUT, PATCH, DELETE) (0) | 2023.01.12 |
HTTP란?, HTTP 메시지 (0) | 2023.01.12 |
IP, TCP, UDP, 포트, DNS 정리 (0) | 2023.01.11 |
댓글