HTTP 프로토콜을 이용해 웹 통신을 할 때 포트번호는 80으로 정해져있다. 그렇다면 서버는 여러 개의 웹 요청을 받을텐데 그 때마다 각 클라이언트의 소켓을 어떻게 구분할 수 있을까?
서버는 각 클라이언트와 연결된 소켓을 식별하기 위해서 아래 4가지 정보를 기록한다.
- 서버 IP
- 서버 포트
- 클라이언트 IP
- 클라이언트 포트
만약 가 서버가 있고, 나 클라이언트와 다 클라이언트가 있다고 해보자. 나 클라이언트가 처음 소켓을 생성할 때 임의의 숫자로 포트번호를 지정한다. 그리고 이 소켓을 가 서버의 소켓과 연결할 때 서버IP:서버포트 클라IP:클라포트
형식으로 보낸다. 대략 202.33.22.22:80 202.34.23.34:34532
형식이 될거다.
그럼 가 서버는 소켓 연결 요청할 때 온 클라IP와 클라포트를 해당 소켓에 함께 기록한다. 그러면 가 서버는 각 소켓이 어떤 클라이언트의 소켓인지 식별할 수 있다.