본문 바로가기

HTTP·Network

PORT(포트)란?

백엔드 개발하다 보면 서버 한 대에 api-server, admin, batch, db, redis 같은 프로세스를 동시에 올리는 게 흔하다.
이때 “서버 IP는 하나인데, 요청은 어떻게 정확한 서비스로 들어가지?”를 해결하는 게 PORT다.

IP와 PORT는 역할이 다르다

  • IP: 패킷이 도착할 컴퓨터(호스트)를 찾는다. (어디로 보낼지)
  • PORT: 그 컴퓨터 안에서 데이터를 받을 프로세스/서비스를 찾는다. (누가 받을지)

주소로 비유하면:

  • IP = 건물 주소
  • PORT = 건물 안 “호실/문 번호”

그래서 통신에서 흔히 말하는 대상은 보통 이렇게 표현된다.

  • IP:PORT
    예) 127.0.0.1:8080, 192.168.0.10:3306

PORT는 어디에 존재하나?

PORT 번호는 IP 헤더에 있는 게 아니라 TCP/UDP 헤더에 있다.

  • IP는 “호스트까지 배송”
  • TCP/UDP는 “호스트 안에서 어느 프로세스로 전달할지”를 결정

그래서 실제 연결은 다음 조합으로 식별된다.

  • (출발지 IP, 출발지 PORT) ↔ (목적지 IP, 목적지 PORT)

서버 포트 vs 클라이언트 포트

서버는 “고정 포트”를 연다(Listen)

웹 서버는 보통 고정 포트로 요청을 받는다.

  • HTTP: 80
  • HTTPS: 443
    개발 환경에서는 8080, 3000 같은 포트를 많이 쓴다.

클라이언트는 임시 포트를 쓴다

브라우저나 앱이 요청을 보낼 때는 OS가 남는 포트를 하나 잡아준다.
그래서 연결은 보통 이런 형태다.

  • 클라이언트: 내IP:임시포트 → 서버: 서버IP:80(또는 443/8080)

이 구조 덕분에 같은 브라우저에서도 동시에 여러 요청/연결이 가능하다.

포트 번호 범위

  • 범위: 0 ~ 65535
  • 자주 보는 대표 포트
    • 22: SSH
    • 80: HTTP
    • 443: HTTPS
    • 3306: MySQL
    • 5432: PostgreSQL

개발할 때 PORT 이슈 

  1. 포트 충돌(Already in use)
    이미 다른 프로세스가 쓰고 있으면 서버가 안 뜬다.
    (예: 스프링 8080, 프론트 3000, DB 3306 등)
  2. 방화벽/보안 그룹 규칙
    운영 환경에서는 “열어둔 포트만 접근 가능”하게 제한하는 경우가 많다.
    서비스 공개는 결국 “어떤 포트를 열어둘 것인가”랑도 직결된다.

'HTTP·Network' 카테고리의 다른 글

URI란? URI/URL/URN 차이 정리  (0) 2026.02.09
DNS란?  (0) 2026.02.09
TCP vs UDP(전송 계층)  (0) 2026.02.06
IP(인터넷 프로토콜)  (0) 2026.02.06
인터넷 통신  (0) 2026.02.06