클라이언트와 서버

seul_velog·2021년 11월 12일
0

WEB

목록 보기
2/4

📍 CLIENT와 SERVER

Client (서비스를 요청)

: 클라이언트란, 서버에게 서비스를 요구하는 사용자나 컴퓨터이다. 웹브라우저는 클라이언트에서 동작하며, 그래서 웹브라우저인 크롬, 파이어폭스, 익스플로러를 '웹 클라이언트' 라고 한다.

  • 서버와 이어진 모든 단말기(컴퓨터의 경우는 Wi-Fi에, 모바일은 모바일 네트워크에 연결)와 웹에 접근하는 소프트웨어를 지칭한다.
  • 주로 사용자의 입력을 처리하며, 이를 서버에 요청한다.

Server (서비스를 제공)

: 서버란, 서버프로그램이 실행되고 있는 하드웨어이다. 웹서버는 서버에서 동작하며, 그래서 '웹 서버' 라고 한다.

  • 클라이언트의 요청을 받아서 처리하고, 이를 다시 클라이언트에 응답한다.
  • 어떠한 형태로든 클라이언트의 요청을 받아 정보를 제공하면 서버 컴퓨터가 될 수 있다. (노트북 등)

클라이언트와 서버의 통신

  • 일반적으로 네트워크 서비스를 받기 위해 클라이언트가 통신을 시작한다. 클라이언트는 서버에 접속을 시도하고 그 연결 결과를 기다리거나, 어떤 서비스를 요구하고 응답을 기다린다. 클라이언트의 이와 같은 요구에 대하여 서버가 응답을 보내는 방식으로 동작이 이루어진다.

  • 클라이언트와 서버의 통신 방식
    (1) Polling방식: 클라이언트가 서버에 주기적으로 요청 후 응답을 받는 방식이다.
    클라이언트가 주기적으로 요청을 하기 때문에 클라이언트의 수가 증가하면 요청의 수도 증가하기 때문에 서버의 부담이 커지고, 요청과 응답후에는 연결이 끊어지기 때문에 요청할 때마다 연결을 맺는 과정이 필요해서 많은 비용이 소모될 수 있다.

    (2) Long Poll방식: 클라이언트가 서버에 대한 요청을 유지하여 반복적인 요청을 없애고 유효한 이벤트가 발생하면 응답을 해주는 방식이다.
    Polling처럼 불필요한 요청에 계속 응답하는 것이 아니기 때문에 요청에 따른 커넥션 과정에서 비용이 절감된다. 하지만, 클라이언트의 수가 증가하면 그에 따른 응답을 해야하는 수도 증가하기 때문에 Polling과 큰 차이는 없게 된다. 또, 다수의 클라이언트에서 동시에 이벤트가 발생할 경우 서버는 각 클라이언트에 응답을 하게 되고, 그 다수의 클라이언트는 서버에게 곧바로 요청을 하므로 이때 서버의 부담이 커질 수 있다.

    (3) WebSocket방식: 웹소켓은 HTML5 표준 기술로, Client와 서버가 연결된 후부터 HTTP 요청, 응답과는 상관없이 서버와 양방향 통신이 가능하다.
    채팅, 게임, 실시간 주식차트와 같은 실시간이 요구되는 응용프로그램 개발에 사용가능하다.

    +) 웹소켓의 등장 배경
    초창기 웹은 단순히 인터넷에 접속한 사용자에게 콘텐츠를 전달하는 역할에 지나지 않았다. 사용자와의 상호작용은 크게 중요하지 않았으며, 정보의 검색 및 열람 수준에 그쳤다. 하지만 웹을 통해 사용자들이 정보를 교환하고 스스로 커뮤니티를 만들어 교류하고자 하는 수요가 늘어나면서 게시판, 블로그 등과 같은 서버와 클라이언트 간의 상호작용을 하는 부분들이 생기기 시작했다. 이때, 기존의 웹 기술을 이용하여 실시간 웹 서비스를 만드는 일은 복잡하고 어려웠는데 이러한 불편함과 사용자와 긴밀히 상호작용하는 웹 페이지를 더 쉽게 만들고자 하는 개발자의 요구가, 브라우저와 웹 서버 사이의 자유로운 양방향 메시지 송수신 방법으로써 HTML5 표준안의 일부인 웹소켓 API(application programming interface)가 등장하게 된 것이다.


reference : https://ko.wikipedia.org/wiki/%EC%9B%B9%EC%86%8C%EC%BC%93 https://opentutorials.org/course/1

profile
기억보단 기록을 ✨

0개의 댓글