HTTP/네트워크 #1

날림·2021년 10월 18일
0

HTTP

목록 보기
1/5
post-thumbnail

클라이언트-서버 아키텍처

서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조 - 위키백과

클라이언트(client, 손님): 리소스를 사용하는 앱
서버(server, 서빙하는 사람): 리소스를 제공(serve)하는 곳
역할이 둘로 나뉘어 있으므로 2-tier Architecture 라고도 함

왜?

  • 클라이언트가 가벼워진다
    = 필요한 정보는 그때 그때 서버에 요청해서 받아오기만 함
    = 사용자에게 보이는 부분만 담당
  • 관리가 쉬워진다
    = 서버만 잘 관리하면 많은 클라이언트에게 똑같은 내용을 보여줄 수 있음

단점

  • 서버가 꽤 좋아야한다
    = 모든 클라이언트의 요청을 어느정도 잘 처리할만큼은 좋아야 함
  • 데이터를 보관할 공간이 넓어야한다
    = 데이터를 관리하는 다른 계층을 많이 사용 (데이터베이스)
  • 서버의 네트워크가 안정적이어야 한다
    = 많은 클라이언트들이 한번에 요청 했을 때 서버가 터질 수 있다 (Distributed Denial of Service attack, DDoS)

클라이언트-서버 통신

클라이언트가 요청하면 서버가 응답한다 (기본적으로는)

클라이언트는 서버가 이해할 수 있도록 요청하고
서버도 클라이언트가 이해할 수 있도록 응답한다

프로토콜 (protocol)

클라이언트와 서버가 서로 이해할 수 있게 통신하기 위한 약속

웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 HTTP라는 프로토콜을 이용하여 통신한다

API (Application Programming Interface)

클라이언트가 원하는 응답을 얻기위해 서버에 요청하는 방법
& 요청했을 때 받을 수 있는 응답 형식
서버에서 제시해준다

서버는 요청을 받았을 경우 그에 맞는 응답을 한다

  • GET, POST, PUT(또는 PATCH), DELETE


그림 출처 : codestates

profile
항상배우기

0개의 댓글