1. 포트(Port) 의 개념
웹에서 흔히들 쓰는 포트(port)는 뭘까요?
인터넷에 검색을 해보면 '포트(port)란, 네트워크 상에서 데이터를 송수신할 때 사용하는 논리적인 통신 채널을 의미한다'고 나옵니다. 근데 뭔가 설명이 직관적이지 않죠.
포트를 항구에서 선착장 같은 개념이라고 생각하시면 이해하기가 편한데요(by 유튜버 조코딩님 비유)
도메인을 입력하고, DNS를 통해 IP로 들어간 뒤에, 그 IP에서 운영하는 프로그램 중에서 어떤 프로그램에 들어갈지를 정해주는 게 포트라고 생각하시면 편합니다.
선착장에서 도선사가 입출항을 승인해줘야 배를 댈 수 있는 것처럼, 외부 클라이언트가 특정 서비스에 접속하려면, 서버에서 해당 포트를 열어줘야 접근이 가능합니다.
즉, IP 주소가 컴퓨터(서버)를 식별한다면, 포트 번호는 그 컴퓨터 안에서 실행 중인 특정 애플리케이션(서비스)을 식별한다고 생각하시면 됩니다.
2. 포트 예시
위에서 설명한 포트에 대한 간단한 예를 들어보겠습니다.
- 192.168.1.1:80 → 192.168.1.1 서버의 웹 서비스(HTTP)가 실행 중인 포트 80에 접근.
- 192.168.1.1:443 → 같은 서버의 HTTPS 서비스에 접근
이 경우에서 IP는 192.168.1.1로 동일하지만, 80번, 443번 어느 포트로 가느냐에 따라 어떤 프로그램에 들어갈지가 달라집니다.
보통 웹에서 주로 사용하는 포트는 다음과 같습니다.
- 포트 80: HTTP 웹 서버
- 포트 443: HTTPS 웹 서버
- 포트 3306: MySQL 데이터베이스 서버
- 포트 22: SSH (원격 접속)
- 포트 8080 : HTTP 테스트용 또는 개발 환경에서 자주 사용
- 포트 3000번대 : React.js, Express.js 같은 개발용 서버에서 자주 사용
참고로, HTTPS와 HTTP의 차이는 기본 웹 트래픽 / 암호화된 트래픽 정도로만 생각하시면 편합니다.
만약 사용자가 앞에 http, https를 빼고 example.com처럼 도메인만 입력하게 되면 HTTPS를 우선 시도하고, 실패하면 HTTP로 연결을 시도한다고 합니다.
많은 사이트의 경우 보안을 이유로 HTTP(포트 80)으로 접속한 요청을 HTTPS(포트 443)으로 자동 리다이렉트 한다는 점도 참고하세요!
'CS' 카테고리의 다른 글
[Node.js] Express.static 메서드 사용해보기 (0) | 2025.01.21 |
---|---|
PUG란?(PUG 예제 코드 포함) (0) | 2025.01.20 |
GET 방식에서 URL에 데이터를 전달하는 두 가지 방법 : params, query (0) | 2025.01.18 |
GET 방식과 POST 방식 차이(feat. REST) (0) | 2025.01.18 |
프레임워크와 라이브러리 차이(Framework VS Library) (0) | 2025.01.16 |