Skip to content

Latest commit

 

History

History
36 lines (24 loc) · 3.24 KB

File metadata and controls

36 lines (24 loc) · 3.24 KB

1-02. 웹의 동작 방식: 서버와 클라이언트

지난 시간에는 인터넷의 역사를 살펴보았습니다. 인터넷이 발전하면서 웹이라는 발명품이 생겨났다는 이야기 기억 하시나요? 웹의 동작 방식, 그러니까 어떻게 웹이 작동하는지에 대해 설명을 하겠습니다.

이를 설명하기 위해, 서버와 클라이언트를 설명 드리겠습니다. 서버와 클라이언트를 설명하려면 일단 두 대의 컴퓨터가 필요합니다.

한쪽 컴퓨터에는 index.html이라는 웹 문서가 저장되어 있으며, 웹 서버라는 프로그램이 설치되어 있습니다. 다른 컴퓨터에는 이 문서를 열람할 수 있는 웹 브라우저가 설치되어 있습니다.

브라우저가 설치된 컴퓨터에서 URL 창에 info.cern.ch 를 입력합니다. 이는 서버 컴퓨터에 해당 주소와 연결되어 있는 문서를 보내달라는 요청을 보내는 것과 같습니다. 리소스가 들어 있는 컴퓨터의 웹 서버 프로그램이 해당 문서를 찾습니다.

그래서, 웹 브라우저가 설치된 컴퓨터에 해당 파일 내용을 보냅니다. 이렇게 해서 브라우저에 해당 웹문서가 표시됩니다.

이때, 정보를 요청하는 역할의 컴퓨터를 클라이언트, 정보를 응답하는 컴퓨터를 서버라고 합니다.

한편, 서버는 응답만 하는 것이 아니라, 다른 서버에 요청을 보낼 수도 있습니다. 이때는 요청을 보낸 서버가 클라이언트 역할을 합니다. 서버가 꼭 요청에 대한 응답만 하는 것은 아니며, 웹 브라우저만이 클라이언트는 아닙니다. 상대적인 개념이라는 것을 명심하시면 좋겠습니다.

요약하자면, 클라이언트란 요청을 보내는 주체입니다. 보통은 크롬, 엣지, 사파리, 파이어폭스 같은 웹 브라우저가 클라이언트로 사용됩니다. 그 외에도 데스크톱 앱일 수도 있고 모바일 앱을 수도 있으며, 다른 서버에 요청을 보내는 서버일 수도 있습니다. 웹에서의 클라이언트는 웹 브라우저를 포함하는, 웹에 접근하는 소프트웨어입니다. 사실 개발자가 실제로 개발을 할 수도 있습니다.

서버는 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말합니다. 물론, 응답을 보낼 때 항상 Yes만 해야하는 것은 아니고, No를 할 수도 있습니다. 주소를 잘못 입력했을 경우나, 권한이 없을 경우 등에는 요청에 No를 보내겠죠.

웹에서의 서버는 웹사이트를 저장하는 컴퓨터입니다. 자원과 정보를 응답하여 제공하는 쪽입니다. 우리 수업에서는 파이썬 언어 기반의 프레임워크인 플라스크와 장고로 만들어진 애플리케이션이 서버 역할을 수행합니다. 요즘은 이렇게 웹 프레임워크를 이용해서 웹 서버를 개발합니다.

웹 프로그래밍이란, HTTP 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것입니다. 클라이언트와 서버가 무엇인지 알아보았으니, 이제 HTTP를 배우면서 동작 방식을 조금 더 깊게 살펴 보겠습니다.