Client-Server Architecture

우리는 여태까지 웹 페이지를 기술하는 HTML에 대해 알아보았습니다. 그런데 우리가 접하는 웹 페이지들은 사용자로부터 입력을 받아 서버와 통신하는 페이지들이 대부분입니다. 예를 들면, 게시판 웹 페이지의 경우에는 사용자로부터 게시글 제목이나 내용 같은 정보를 받아 서버에 전송하고, 서버는 이를 받아 DB에 저장, 게시글이 정상적으로 등록되었다는 메시지를 다시 클라이언트에 전달합니다. 이 과정을 나타낸 것이 아래 그림입니다.

Client-Server 통신 과정 개략도

Client-Server 통신 과정 개략도

웹을 구성하는 요소를 아래와 같이 나누어 봅시다.

Client와 Server가 통신하는 과정을 간략히 알아봅시다. 우선, ClientWeb Server로부터 받은 HTML, CSS, Javascript 파일을 받아오고 렌더링한다는 것은 알고 있는 사실입니다. 그렇다면 Client에서 Web Server로 데이터를 전송하게 되면 어떻게 될까요? Client는 사용자로부터 입력을 받아 HTTP Request의 형태로 데이터를 전송합니다. Web Server는 이를 Web Application에 넘깁니다. Web Application은 이 데이터를 바탕으로 어떠한 처리를 해야하는지 분석합니다. Database와 통신하여 데이터를 저장하거나, 서버에 존재하는 파일들을 조작할 수도 있습니다. 모든 처리가 끝나게 되면 클라이언트에 처리에 관한 정보를 전달해야합니다. Web Application은 다시 HTML, CSS, JS 파일들을 HTTP Response의 형태로 Web Server에 전달하고, Web Server는 이를 다시 Client에 전달합니다. 이 과정이 끝나면, 비로소 우리가 요청한 것에 대한 응답을 웹 브라우저 화면으로 볼 수 있게 됩니다.

HTTP Request

HTTP RequestHTTP에서 Client에서 Web Server로 전달하는 요청에 해당하는 부분입니다. HTTP Request는 아래와 같이 구성됩니다.

HTTP Request

HTTP Request

HTTP Response

HTTP Response

HTTP Response