URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있습니다.
로케이터는 뭐고, 이름은 또 무엇일까요?
사진과 같이 URI라는 가장 큰 개념이 있습니다. 이는 리소스를 식별합니다.
그 안에 크게 두가지가 있습니다.
첫번째는 URL로 리소스의 위치를 나타냅니다.
두번째로 URN은 리소스의 이름을 나타냅니다.

URI
URL, URN
이름이 변하지 않으면 좋아보일 수 있는데요,
그러다 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어 있지 않습니다.
즉, URI, URL만 기억하셔도 좋을 것 같습니다.
전체 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
scheme
userinfo
host
port
path
query
fragment
url을 입력했을 때, 어떤 식으로 흐름이 진행되는지 살펴봅시다.
우선 구글 서버를 찾기 위해 DNS를 조회합니다.
그리고 HTTP 요청 메시지를 생성합니다.

Http 메시지가 생성되면, 이는 SOCKET 라이브러리를 통해 서버랑 연결을 하고, 데이터를 전달합니다.
그런 다음 데이터에 패킷을 씌웁니다.
패킷에는 IP, Port 정보, HTTP 메시지가 들어있어 이 정보들에 따라 인터넷으로 흘러갑니다.

서버가 이 패킷을 받으면 해석 후 http 응답 메시지를 만들어 냅니다.

그리고 tcp 패킷을 씌워서 전달합니다.

이 패킷을 전달 받으면 분해하고 html 렌더링을 하여, 그 결과를 우리가 보게 됩니다.
