URI이란?
Uniform Resource Identifier로 통일된 리소스 식별자이다. 리소스 식별을 위한 방법은 구체적으로 URL과 URN 2가지가 더 있다.
URL
Uniform Resource Locator로 위치를 통해 Resource를 식별하는 방식이다.
- http://www.google.com:443/search?q=IU&hl=ko
- ex) scheme://host:[port]/path[?query]
- scheme : http, https, ftp와 같은 프로토콜을 지정한다.
- host : url, urn, dns와 같은 host명을 적는다. ex) www.google.com
- port : port 번호를 적는다. 생략 가능
- path : /path로 리소스 경로를 적는다. ex) search
- query : ?로 시작하며 &로 추가 가능하다. ?keyA=valueA&keyB=valueB
- query parameter, query string 등으로 불리며 웹서버에 제공하는 파라미터이다.
URN
Uniform Resource Name으로 위치를 통해 이름을 통해 Resource를 식별하는 방식이다. URL과의 차이점은 위치는 변할 수 있지만, 이름은 변하지 않는다는 점이다. 따라서 URN은 절대적이고 영속적인 경로를 지정하는데 유용할 수 있다.
HTTP 전송과정
- 애플리케이션 단에서 HTTP 메서드를 생성한다.
- 생성한 HTTP 메서드를 SOCKET 라이브러리를 통해 전달한다.
- SOCKET라이브러리는 다음과 같은 역할을 한다.
- A: TCP/IP 연결 (IP, PORT)를 연결한다.
- B: 데이터를 전달한다.
- SOCKET라이브러리는 다음과 같은 역할을 한다.
- OS는 SOCKET 라이브러리로부터 데이터를 전달받고, TCP/IP 패킷 생성하며 (HTTP 메시지 포함)
- 네트워크 인터페이스는 OS로부터 TCP/IP 패킷을 전달받은 뒤 LAN 드라이버, 장비를 통해 인터넷을 통해 서버로 전달한다.
패킷 생성과정
- TCP/IP 패킷에는 출발지 IP, 목적지 IP, PORT 정보 등이 포함되어 있다.
- 여기에 전송 데이터 HTTP 메시지가 포함된다.
해당 글은 김영한님의 모든 웹 개발자를 위한 HTTP 강의를 수강하며 공부한 내용을 정리하였습니다.
'네트워크' 카테고리의 다른 글
HTTP 정리 - 인터넷 통신이 이루어지는 방식 (0) | 2021.05.09 |
---|