HTTP 통신을 하는 이유는 클라이언트가 원하는 것을 주고받기 위해서다. 클라이언트가 원하는 것을 인터넷 세계에서는 resource라고 부른다. 리소스는 텍스트로 된 문서일수도 있고, 이지미나 동영상이 될 수도 있다.
리소스는 어디에 있는지 '주소'를 갖고 있어야 한다. 그렇지 않으면 클라이언트가 요청한 리소스를 찾아내기 위해 수억, 수십억개의 리소스를 일일이 뒤져야 할지 모른다. 이 주소를 Uniform Resource Identifier, 줄여서 URI라고 부른다.
Uniform Resource Locator, 줄여서 URL은 URI의 한 종류다. "주소창 주소 불러봐"할 때의 그 주소다. 주소창에 이 URL을 적어 넣으면 해당하는 웹페이지로 가서 이미지든, 문서든, 동영상이든 원하는 리소스를 얻을 수 있다.
/* 아래는 모두 URL이다 */
https://www.example.com
https://www.example.com/hello
https://www.example.com/hello/korean
https://www.example.com/hello/spanish
URL은 포트번호(http는 일반적으로 80으로 고정), 쿼리문 등을 포함하여 좀더 복잡한 형태를 띄기도 한다.
https://www.example.com:80/hello/description.html?id=12345&page=5
Uniform Resource Name, 줄여서 URN이다. URN 역시 URI의 또 다른 종류다. URL이 리소스가 어디에 있는지를 계층적으로 알려주는 것이라면, URN은 namespace 개념을 통해 다음과 같은 방식으로 리소스에 인덱싱을 하는 것이라고 보면 된다.
urn:hello:korean:08277712345