HTTP
HTTP 포트 안내: 포트 80의 웹 트래픽
프로덕션 트래픽이 HTTPS를 사용해야 하는 경우에도 포트 80이 리디렉션, 인증서, 상태 확인 및 레거시 클라이언트에 여전히 중요한 이유를 이해하십시오.
- 기본 포트
- 80
- 프로토콜
- TCP
- 주요 용도
- 레거시 또는 리다이렉트된 웹 트래픽
포트 80이 무엇인가요?
포트 80은 HTTP의 기본 TCP 포트입니다. 브라우저가 사용자 지정 포트 없이 http:// URL을 열면 포트 80에 연결하고 일반 HTTP 요청을 보냅니다. 포트 443의 HTTPS와 달리 포트 80의 트래픽은 기본적으로 암호화되지 않습니다.
80은 기본 HTTP 포트입니다.
브라우저, 크롤러, 로드 밸런서, 역방향 프록시 및 레거시 클라이언트는 모두 포트 80을 일반 HTTP의 표준 진입점으로 이해합니다.
포트 80은 일반적으로 HTTPS로 연결되어야 합니다.
최신 공개 사이트는 일반적으로 리디렉션 및 자동화를 위해 80개를 열어 두는 반면, 실제 애플리케이션 세션은 443에서 암호화된 HTTPS를 통해 발생합니다.
포트 80의 HTTP 작동 방식
HTTP는 브라우저, API, 웹후크, 상태 확인 및 많은 내부 서비스에서 사용되는 요청 및 응답 프로토콜입니다. 포트 80에서 클라이언트는 TCP를 통해 연결하고, HTTP 요청을 보내고, TLS 핸드셰이크 없이 먼저 헤더와 응답 본문을 받습니다.
트래픽은 암호화되지 않기 때문에 애플리케이션이 자체 보호를 추가하지 않는 한 네트워크 경로를 관찰할 수 있는 사람은 누구나 URL, 쿠키, 헤더, 양식 데이터 및 응답 콘텐츠를 볼 수 있습니다. 공개 웹사이트 및 인증된 애플리케이션의 경우 일반적으로 포트 80은 비공개 콘텐츠를 직접 제공하는 대신 HTTPS로 리디렉션되어야 합니다.
HTTP 포트 80 대 HTTPS 포트 443
포트 80은 일반 HTTP입니다. 포트 443은 HTTPS이며, 이는 TLS 암호화 세션 내에서 전달되는 HTTP를 의미합니다. 사용자 경험은 브라우저에서 비슷해 보일 수 있지만 보안 모델은 다릅니다. 즉, HTTPS는 서버 인증서의 유효성을 검사하고 전송 중인 트래픽을 암호화합니다.
대부분의 프로덕션 사이트에서는 두 포트를 함께 사용합니다. 포트 80은 이전 링크, 인증서 챌린지 및 최초 브라우저 요청을 수락한 다음 443의 HTTPS URL로 301 또는 308 리디렉션을 보냅니다. 그 후 HSTS는 브라우저에 자동으로 HTTPS를 선호하도록 지시할 수 있습니다.
포트 80을 열어 두어야 하는 경우
HTTP-HTTPS 리디렉션, Let's Encrypt HTTP-01 챌린지, 로드 밸런서 상태 확인, CDN 원본 확인, 간단한 내부 상태 엔드포인트 또는 HTTPS에서 직접 시작할 수 없는 이전 시스템과의 호환성이 필요한 경우 포트 80을 열어 두세요.
서비스가 비공개일 때, 모든 클라이언트가 제어되고 HTTPS를 직접 사용할 수 있을 때, 일반 HTTP가 불필요한 노출을 생성할 때 포트 80을 닫거나 제한합니다. 열린 상태로 유지하는 경우 전체 애플리케이션 액세스 대신 리디렉션, 인증 확인 또는 상태 확인 등 동작을 좁고 예측 가능하게 유지하십시오.
80번 포트를 열기 전
TCP 80을 열기 전에 원하는 웹 서버, 역방향 프록시, 수신 컨트롤러, CDN 원본 또는 로드 밸런서가 올바른 인터페이스에서 수신 대기하고 있는지 확인하세요. 포트 80이 콘텐츠를 제공할지, 443으로 리디렉션할지, 상태 확인에 응답할지, 인증서 검증 경로에만 응답할지 결정합니다.
포트 검사기는 네트워크 연결 가능성을 확인하지만 리디렉션 체인, 캐시 헤더, 가상 호스트 라우팅 또는 인증서 자동화가 올바른지 여부는 알려주지 않습니다. 브라우저, 컬 및 서버 로그를 사용하여 TCP 경로와 HTTP 동작을 모두 테스트합니다.
Windows, Linux 및 macOS에서 포트 80을 여는 방법
Windows Server에서 IIS, Nginx, Apache, Caddy 또는 다른 웹 서버를 실행하고 사이트를 TCP 80에 바인딩하고 Windows Defender 방화벽에서 인바운드 HTTP 트래픽을 허용합니다. 클라우드 서버에는 일치하는 클라우드 방화벽 또는 보안 그룹 규칙도 필요합니다.
Linux에서는 Nginx, Apache, Caddy, 컨테이너 포트 게시 또는 수신 컨트롤러를 80에서 수신하도록 구성한 다음 ufw, Firewalld, nftables, iptables 또는 공급자 방화벽에서 TCP 80을 허용합니다. 컨테이너와 Kubernetes 서비스는 호스트, 로드 밸런서 또는 수신 레이어에서 포트를 게시하거나 라우팅해야 합니다.
macOS에서는 포트 80이 로컬 개발이나 랩 서비스에 가장 자주 사용됩니다. 권한 있는 포트에는 높은 권한이 필요할 수 있으며, 로컬 방화벽이나 라우터 규칙은 다른 컴퓨터가 서비스에 연결할 수 있는지 여부를 계속 결정합니다.
- 서비스 계층: 웹 서버, 역방향 프록시, 로드 밸런서, 컨테이너 또는 수신 컨트롤러는 TCP 80을 수신해야 합니다.
- 네트워크 계층: 호스트 방화벽, 클라우드 보안 그룹, 라우터 NAT, CDN 규칙 및 로드 밸런서는 트래픽을 올바르게 라우팅해야 합니다.
- HTTP 계층: 가상 호스트, 리디렉션, 상태 확인 경로, 캐시 헤더 및 ACME 챌린지 경로가 의도된 동작과 일치해야 합니다.
- 보안 계층: 일반 HTTP를 통해 로그인 페이지, 쿠키, API 토큰 또는 개인 콘텐츠를 제공하지 마세요.
포트 80을 테스트하는 방법
공개 호스트 이름이나 IP 주소 및 포트 80에 대해 외부 포트 검사부터 시작합니다. 결과가 공개되면 원격 클라이언트는 TCP 연결을 설정할 수 있습니다. 그런 다음 컬 -I http://example.com을 실행하여 상태 코드, 리디렉션, 서버 헤더 및 캐시 동작을 검사합니다.
서버에서 ss -tlnp, netstat, lsof 또는 PowerShell을 사용하여 리스너를 확인합니다. 역방향 프록시 및 클라우드 배포의 경우 모든 계층이 HTTP를 차단하거나 잘못 라우팅할 수 있으므로 호스트 방화벽 규칙, 클라우드 보안 그룹, 로드 밸런서 리스너, 컨테이너 포트 매핑 및 애플리케이션 로그를 비교하세요.
공통 포트 80 문제 해결 사례
포트 80이 닫힌 것으로 표시되면 웹 서버가 중지되거나, 로컬 호스트에서만 수신 대기하거나, 다른 포트를 사용하거나, 호스트 방화벽에 의해 차단될 수 있습니다. 시간이 초과되면 클라우드 방화벽, 라우터 NAT 규칙, ISP 필터, CDN 설정 또는 업스트림 보안 정책에 의해 패킷이 삭제될 수 있습니다.
포트 80이 열려 있지만 페이지가 잘못된 경우 가상 호스트 순서, 호스트 헤더 라우팅, 기본 서버 블록, 프록시 업스트림, 컨테이너 매핑 및 DNS 레코드를 검사합니다. 리디렉션이 루프인 경우 HTTP와 HTTPS 가상 호스트를 비교하고 프록시가 원래 체계를 올바르게 전달하는지 확인하세요.
HTTP 보안 체크리스트
의도적으로 포트 80을 사용합니다. 애플리케이션 트래픽을 HTTPS로 리디렉션하고, 일반 HTTP에서 자격 증명과 민감한 데이터를 방지하고, 계속 연결해야 하는 엔드포인트만 유지하세요. 공개 사이트의 경우 HTTPS가 안정적인지 확인한 후 443 및 HSTS의 유효한 인증서와 리디렉션을 연결하세요.
포트 80에 대한 요청을 기록하고, 예상치 못한 경로를 감시하고, 더 이상 일반 HTTP가 필요하지 않은 레거시 엔드포인트를 제거합니다. 포트 80이 ACME 또는 상태 확인 전용인 경우 해당 경로에 대한 응답을 제한하여 서비스를 더 쉽게 추론하고 모니터링할 수 있습니다.
자주 묻는 질문
포트 80은 어떤 용도로 사용되나요?
포트 80은 HTTP의 기본 TCP 포트입니다. 일반적으로 HTTP-HTTPS 리디렉션, 인증서 유효성 검사 문제, 상태 확인 및 레거시 웹 클라이언트에 사용됩니다.
포트 80을 열어야 합니까?
공용 웹사이트의 경우 오래된 링크와 최초 브라우저 요청이 HTTPS로 리디렉션될 수 있도록 포트 80을 열어 두는 것이 일반적입니다. 비공개 서비스의 경우 명확한 운영상 필요가 없는 한 폐쇄하거나 제한하세요.
포트 80의 HTTP는 안전합니까?
아니요. 일반 HTTP는 트래픽을 암호화하거나 인증서로 서버의 유효성을 검사하지 않습니다. 인증된 세션, 양식, 쿠키, API 및 비공개 콘텐츠에 대해 포트 443에서 HTTPS를 사용합니다.
포트 80이 열려 있는데 웹사이트가 여전히 작동하지 않는 이유는 무엇입니까?
HTTP 라우팅이 끊어진 상태에서도 TCP 포트에 연결할 수 있습니다. DNS, 가상 호스트, 리디렉션, 역방향 프록시 규칙, 컨테이너 포트 매핑, 로드 밸런서 수신기 및 애플리케이션 로그를 확인하세요.