하나의 컴퓨터에는 웹서버가 여러개가 설치될 수 있다.
웹서버 뿐만아니라 게임서버, 채팅서버등 여러가지 서버를 설치할 수 있다.
이때 우리가 특정 컴퓨터로 접속했을 때 이 여러개의 서버를 가진 컴퓨터중에 뭐가 어떤 서버인지 어떻게 식별할까?
우리가 접속을 할때 그 많은 서버들 중에 누구랑 상호작용을 할것인지를 서버 역할을 하는 컴퓨터에게 알려줘야하는데
이때 사용하는게 바로 port이다.
쉽게 이해하자면
IP로는 목적지를 찾을 수 있고
여러 서버중에서 원하는 서버를 찾을 수 있게 도와주는게 PORT이다.
port는 0부터 65535번까지 있다. (총 65536개가 있다.)
port 20번은 ssh가 쓰도록 정해져있다.
port 80번은 웹이 쓰도록 정해져있다.
쉽게말해 server컴퓨터에 ssh서버를 설치하면 22번 port에 연결되도록 약속이 되어있다.
그리고 웹서버를 설치 하면 웹서버는 80번 prot에 연결되도록 약속이 되어있다.
그럼 어떤식으로 동작을 할까? 80번 port를 예로들자면
클라이언트 컴퓨터를 통해서 웹브라우저에 서버 주소를 입력해서 엔터를 치면 웹브라우저는 서버 컴퓨터의 80번 port를 찾아간다.
왜냐하면? 웹서버는 80번 port에서 대기하고(listen) 하도록 되어있기때문이다.
실제에서는 크롬 브라우저에서 naver.com을 입력하면 실상은 naver.com:80이다. 이게 server 컴퓨터의 80번 port로 가서 요청하면
server컴퓨터는 요청을 잘 작업한뒤 응답을 사용자의 크롬 브라우저로 다시 보낸다. 그럼 브라우저는 응답을 client 컴퓨터에 보여준다.
이런식으로 몇몇 port는 특정 용도로 사용하도록 예약되어있다.
이 예약된 port를 well-known port라고 한다. 즉 미리 어떠한 용도로 쓸 것인지 정해져있다. 0 ~ 1023까지 전부 well-known port이다. 이 well-known port는 접속할때 특별히 port 번호를 명시하지 않아도 가능하도록 되어있다 (ex :80을 생략해도 웹 서버에 접속할 수 있는 것 처럼)
이 중에서 웹서버는 기본적으로 80번 포트에 연결되도록 약속이 되어있다
경우에 따라서 서버를 한 개 더 추가 하고 싶다고 해보자.
이미 80번 포트가 사용중이다. 이럴때는 80번 port를 사용중이라서 다른 port를 사용해야한다.
주로 관습적으로 8080 port를 사용한다. (다른 port에 해도 되긴하다)
ssh라는 서버를 깔면 22port에 연결이된다.
url에 http://opentutorials.org로 url을 입력하면 80port로 접속을 한다.
http로 접속을 하겠다고 하면 컴퓨터는 자동적으로 80port와 연결을 한다.( 뒤에 :80이 생략된 것이다. :80은 생략가능)
만약 8080port에 접속하고 싶다면
주소를 이렇게 :8080으로 적어주면 된다.
port forwarding
위 그림의 public IP address는 59.6.66.238이다.
그리고 우리가 서버는 192.168.0.4에 웹 서버를 설치했다고 가정해보자.
그럼 제 3자가 나의 서버에 접속하기 위해서는 어떻게해야할까?
public IP address를 알려주면 되는데
이때 접속하는 사람들이 이 IP주소롤 접속했을 때 192.168.0.4로 접속하게 하면 되는 것이다.
여기서 바로 port를 이용하는 것이다.
그리고 여기서 사용하는 개념이 바로 port forwarding이다.
제 3자가 59.6.66.238:8081로 접속이들어오면 192.168.0.4:80으로 연결 되게 설정해주는게 바로 port forwrding이다.
https://www.youtube.com/watch?v=AkQHen87L7Y
'정보' 카테고리의 다른 글
더 좋은 코드를 위한 노력 - 코드 가독성 개선하기 (2) (0) | 2022.12.22 |
---|---|
더 좋은 코드를 위한 노력 - 코드 가독성 개선하기 (1) (0) | 2022.12.19 |
[오류] Mac 에러 해결 (xcrun: error: invalid active developer path) (0) | 2022.10.25 |
[TIL] 배포지옥 (0) | 2022.09.17 |
[TIL] 공유기 ( router) (0) | 2022.09.15 |