서버는 데이터를 포함하거나 네트워크의 다른 컴퓨터에서 온 요청에 응답해주는 컴퓨터입니다.
클라이언트는 서버로부터 서비스나 데이터를 요청하는 컴퓨터입니다.
클라이언트
- 서버와 이어진 모든 단말기(컴퓨터의 경우는 WI-FI에, 모바일은 모바일 네트워크에 연결되어 있다)와 단말기에서 이용하는, 웹에 접근하는 소프트웨어를 지칭
- 보통은 브라우저이나, 게임과 같이 별도의 클라이언트가 서버랑 호응하는 경우도 있음.
- 사용자의 입력을 주로 처리하며 이를 서버에 요청을 보냄.
서버
- 웹페이지, 사이트, 앱을 저장하는 컴퓨터
- 클라이언트의 요청을 받아서 처리하고, 이를 다시 클라이언트에 응답을 보냄
- 어떠한 형태로든 클라이언트의 요청을 받아 정보를 제공하면 서버 컴퓨터가 될 수 있음. (노트북도 가능)
상호작용 순서
- 사용자가 클라이언트를 이용해서 무언가 리소스를 얻고자함. 먼저 브라우저가 웹사이트에 있는 서버의 주소를 찾음.
- 클라이언트의 명령을 http 요청 메세지로 서버에 보냄. 이 요청 메세지들은 TCP/IP 연결을 통해서 전송됨.
- 서버가 클라이언트의 요청을 받음. 적절한 요청이라면 '200 OK' 라는 상태코드를 띄운다. '200 OK'는 "적절한 요청 수용됨. 응답 및 요청 리소스 반환" 이라는 의미.
- 서버가 클라이언트가 요청한 리소스를 데이터 패킷이라는 형태로 전송함
- 브라우저가 이 패킷들을 받으면 다시 원하는 형태의 리소스로 재조립하고, 화면에 출력함
- 반복!
패킷
- 기본적으로 서버에서 클라이언트로 데이터를 전송할 때 쓰는 단위
- 다량의 데이터를 분할하지 않고 보내면 한 번에 한 사용자만 데이터를 받는 blocking 상태에 빠지거나, 데이터가 손실될 수도 있음. 따라서 전체 데이터를 일정 길이로 쪼개서 클라이언트에 보내는 이 형식이 바로 패킷.
- 패킷은 수신처(요청한 클라이언트)의 정보가 담긴 헤더/ 데이터 / 에러 정보가 기록된 테일러 세 부분으로 나뉨
- 전체 데이터를 서버에서 적절한 길이로 잘라낸 다음, 패킷으로 클라이언트에 보낸 뒤에, 이것을 다시 클라이언트에서 재조립하여 원래의 데이터로 만들어냄.
- 수신처의 정보가 있고 에러 체크도 가능하여 신뢰성이 높음. 표준화된 프로토콜을 사용함.
- 수신처의 정보를 담고 있기 때문에 보안 취약점이 존재 (패킷 암호화)
'개인공부' 카테고리의 다른 글
HTTP 프로토콜 (0) | 2022.10.20 |
---|---|
Was / Web Server 차이점 (0) | 2022.10.20 |
API란? (0) | 2022.10.20 |
타입변환과 다형성 문제정답 (0) | 2022.10.11 |
타입변환과 다형성 문제출제 (1) | 2022.10.11 |
댓글