|
|
목차 |
2. HTTP 기본 동작
인터넷을 이용하여 검색이나 웹 서핑, 메일 송수신 등의 웹 애플리케이션을 사용하기 위해서는 PC에 설치되어 있는 웹 브라우저(가장 대표적인 것이 Windows의 Internet Explorer, Google의 Chrome)를 통해 웹 서버와 통신을 하게 된다. 이와 같이 사용자의 웹 브라우저와 웹 서버 사이에 정보를 주고받기 위한 표준 프로토콜이 HTTP이다.
웹 브라우저를 통해 사용자가 웹 서버에 접속하여 서비스를 이용하기 위한 HTTP의 기본 동작 과정은 그림 1과 같다.
그림 1. HTTP 기본 동작 과정
1. Web Browsing
사용자가 Internet Explorer나 Chrome과 같은 웹 브라우저를 실행시키고, 원하는 인터넷 서비스(이 예제에서는 네이버에 접속)를 사용하기 위해 URL(Uniform Resource Locator)을 입력/요청한다.
2. DNS Query
웹 브라우저는 사용자가 요청한 URL, 즉 네이버(www.naver.com) 서버에 접속하기 위해 DNS (Domain Name System) Query 메시지를 통해 해당 웹 서버의 IP 주소를 DNS 서버에게 물어본다.
3. DNS Response
DNS Query 메시지를 수신한 DNS 서버는 해당 URL의 IP 주소(202.131.29.70)를 DNS Response 메시지에 담아 웹 브라우저로 알려준다.
4. TCP Connection
DNS Response 메시지를 통해 웹 서버의 IP 주소를 알게 된 웹 브라우저는 3-way Handshaking (SYN – SYN/ACK – ACK) 과정을 통해 해당 웹 서버와의 TCP 연결을 생성한다.
5. HTTP GET
TCP 세션이 생성되면, 웹 브라우저는 웹 서비스 요청을 위해 HTTP GET 메시지를 웹 서버로 전송한다.
6. HTTP/1.1 200 OK
HTTP GET 메시지를 수신한 웹 서버는 텍스트, 이미지 등이 포함된 HTTP/1.1 200 OK 메시지 (HTTP/1.1은 HTTP 버전 1.1을 나타내며, 현재 가장 많이 사용되고 있음)를 웹 브라우저로 전달한다.
7. TCP Disconnection
HTTP 메시지 교환 이후 해당 서버와 더 이상의 통신이 없으면, 위의 4번 과정에서 생성했던 TCP 연결을 해제한다.
8. Rendering
HTTP/1.1 200 OK 메시지를 수신한 웹 브라우저는 메시지에 포함된 텍스트, 이미지 파일 등의 정보를 확인하고 사용자가 볼 수 있도록 내용을 화면에 뿌려준다. 이때 하나의 웹 페이지를 구성하는 데이터가 여러 서버/URL에 나누어져 있으면, 그림 1의 2~6 과정을 여러 번 거쳐 해당 데이터를 받아와서 사용자 화면에 Rendering해준다. 이 예제에서는 이미지 데이터가 다른 서버에 위치하여 해당 데이터가 처음에는 Rendering되지 않았다가 DNS 및 HTTP 메시지 교환(9~15 과정)을 통해 이미지 데이터를 수신한 후 Rendering한다.
그림 1의 HTTP 기본 동작 과정에서 웹 브라우저의 HTTP 요청 메시지에 대한 웹 서버의 HTTP 응답 메시지는 표 1과 같은 카테고리로 구분된다.
표 1. HTTP/1.1 응답 메시지 내 응답 코드