서버? 클라이언트?
내가 몇 명의 웹 개발자들과 일을 해본결과 가장 많이 혼등하는 것이 서버-클라이언트 관계이다.
결론부터 말하자면
서버 : 무엇인가를 주는 입장에 있는 프로그램
클라이언트 : 무엇인가를 받는 입장의 프로그램
이라고 생각하면 된다.
흔히 말하는 웹 서버를 예를 들자.
말 그대로 웹 서버는 웹의 내용을 보내주는 역할을 한다.
그럼 클라이언트는? 이라고 물으면 흔히 웹 서버에 접속하는 브라우저를 얘기한다.
기본적으로 서버와 클라이언트는 아래와 같은 접속 단계를 거친다.
단계 | 클라이언트 | 서버 |
1 | 서버에게 요청한다. |
|
2 |
| 서버내에 요청 내용이 있는지 확인하고 클라이언트에게 응답한다. |
3 | 서버의 내용을 받는다. |
|
단순하지만 모든 서버 클라이언트의 커넥션은 위와 같이 이루어진다.
자 그럼 클라이언트는 어떻게 서버를 찾아갈까?
조금 어려운 내용이지만 한번 알아보자.
네트워크의 모든 데이터는 패킷으로 잘려서 돌아다니게 된다.
패킷 : 네트워크 전송시 가장 기본이 되는 전송단위
패킷은 기본적으로 헤더 + 데이터로 나뉜다.
헤더 내용 중에는 접속하려는 아이피와 내 아이피가 있어서 랜선을 통해 라우터(패킷의 아이피를 추출하여 다음 라우터 혹은 컴퓨터로 보내는 장치)를 거쳐 접속하고자 하는 컴퓨터로 접근하게 된다.
그런데 꼭 이렇게 설명하면 서버와 클라이언트는 항상 분리되어 있다고 생각하는 사람이 많다.
예를들어 토렌토 혹은 p2p를 생각해 보면 간단하다.
토렌토는 파일을 받으면서 다른 사람에게 파일을 준다.
즉. 클라이언트 역할을 하면서 서버 역할을 하는 것이다.
결론은 서버와 클라이언트는 어떤 역할을 하는가에 따라 분류되는 것이다.
'생활강좌' 카테고리의 다른 글
개발환경 세팅- apm 구축 (0) | 2015.10.13 |
---|---|
개발환경 세팅하기 (0) | 2015.10.13 |
서버정보 (6) | 2015.10.01 |
도메인, 호스트 등록 (2) | 2015.09.17 |
서버 종류 (0) | 2015.09.14 |