SW 사관학교 정글(Jungle)/컴퓨터 시스템(CSAPP)

[CSAPP] 11-1 클라이언트-서버 프로그래밍 모델

jinsang-2 2024. 9. 16. 09:08

모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초한다.

서버 : 일부 리소스를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공

  • 웹 서버는 디스크 파일들을 관리하고, 클라이언트를 대신해서 이들을 가져오고 실행한다.
  • FTP 서버는 클라이언트를 위해 저장하고 읽어오는 디스크 파일들을 관리
  • 이메일 서버는 클라이언트를 위해서 읽고 갱신하는 스풀 파일을 관리

클라이언트-서버 모델에서 근본적인 연산은 트랜잭션이다.

클라이언트 - 서버 트랜잭션의 4 단계

  1. 클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청 request을 서버에 보내는 것으로 트랜잭션을 개시
  2. 서버는 요청을 받고, 해석하고, 자신의 자원들을 적절한 방법으로 조작한다.
  3. 서버는 응답 response을 클라이언트로 보내고, 그 후에 다음 요청을 기다린다.
  4. 클라이언트는 응답을 받고 이것을 처리한다.

client - server 트랜잭션 4단계 예시

  1. 웹 브라우저가 파일을 필요로 할 때, 웹 서버로 요청을 보냄
  2. 웹 서버가 브라우저로부터 요청을 받을 때, 디스크 파일을 읽는다.
  3. 웹 서버는 이 파일을 다시 클라이언트로 돌려보낸다.
  4. 웹 브라우저가 서버로부터 페이지를 한 개 받은 후, 스크린에 디스플레이!

알아두자 !

  • 클라이언트와 서버는 프로세스이다.
  • 이 컨텍스트에서 종종 불린 것처럼 머신이나 호스트는 아니다.