● URI 이란?
통합 자원 식별자(URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다.
URI의 존재는 인터넷에서 요구되는 기본 조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
URI의 하위개념으로 URL, URN 이 있다.
그렇다면 URN과 URL은 뭘까?
● URL 이란?
URL(Uniform Resource Locator)은
네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.
즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다.
쉽게 말해서, 웹 페이지를 찾기위한 주소를 말한다.
● URL 구조
URL 구조를 분석하면서 이해해보자.
ex)
https://www.google.com:443/search?q=hello&hl=ko
위는 한 URL의 예시이다.
• 프로토콜(https)
• 호스트명(www.google.com)
• 포트 번호(443)
• 패스(/search)
• 쿼리 파라미터(q=hello&hl=ko)
URL 구조에서 각 위치마다 문법이 다르다.
이를 자세하게 분석해보자.
scheme://[userinfo@]host[:port][/path][?query][#fragment]
URL은 위와 같은 문법으로 이루어져 있다.
○ scheme
scheme에는 주로 프로토콜을 사용한다.
※프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
예) http, https, ftp 등등
http는 80 포트, https는 443 포트를 주로 사용하고,
포트는 생략 가능하다.
○ userinfo
userinfo는 URL에 사용자 정보를 포함해서 인증하는 역할을 한다.
하지만 거의 사용하지 않는다.
○ host
host명을 나타낸다.
도메인명 또는 IP 주소를 직접 사용이 가능하다.
Ex) www.google.com
○ PORT
접속 포트를 적어준다.
일반적으로 생략하고, 생략 시 http는 80, https는 443을 나타낸다.
PORT에 대한 자세한 설명은 아래 링크에 있다.
https://healthdevelop.tistory.com/entry/http3
○ path
path는 리소스 경로(path)를 뜻하며, 계층적 구조로 이루어져 있다.
Ex) /home/file1.jpg
/members
/members/100, /items/iphone12
○ query
query는 key=value 형태로 이루어져 있다.
?로 시작하고, &로 추가가 가능하다.
ex) ?keyA=valueA&keyB=valueB
query는 query parameter, query string 등으로 불린다.
웹서버에 제공하는 파라미터는, 모두 문자 형태로 받아들여지기 때문이다.
ex) ?q=hello&hl=ko -> "hello"라는 검색어와 언어(language)를 한국어(ko)로 설정
○ fragment
fragment는 html 내부 북마크 등에 사용된다.
흔히 한 페이지 내에서 특정 부분으로 이동할 때 사용되는 문법이라고 생각하면 된다.
그렇기에 서버에 전송하는 정보 아니다.
● URN 이란?
URN(Uniform Resource Name)은
불변의 의미를 가지는 이름으로 인터넷 자원을 찾는 방식이다.
URN은 웹페이지 주소, 즉 URL과 형식이 다소 비슷하게 보인다.
한 URN의 예시를 통해 간단하게 알아보자.
Ex) urn:isbn:8960777331
위 URN은 어떤 책의 URN이다.
앞서 봤던 URI의 구조(경로를 통해 찾는)와 다르게
URN은 리소스 자체에 부여된 영구적이고 유일한, 그리고 변하지 않는 이름으로 리소스를 특정한다.
'Server > HTTP' 카테고리의 다른 글
[HTTP] HTTP 메시지 (0) | 2022.02.04 |
---|---|
[HTTP] HTTP란? | HTTP 특징 (0) | 2022.02.04 |
[HTTP] DNS 란? (0) | 2022.02.01 |
[Http] Port 란? (0) | 2022.02.01 |
[HTTP] TCP, UDP 란? (0) | 2022.02.01 |