일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ocp
- 비관적 락
- 스레드 풀
- Spring
- JPA
- 캐시 오염
- Redis
- 자바
- Dirty Checking
- buildSrc
- java
- DB
- Kafka
- 정규화
- 데이터베이스
- 페이지네이션
- 삭제 이상
- gatway
- 자료구조
- MSA
- Kotlin
- HTTP
- 낙관적 락
- 네트워크
- AWS
- 3-way handshaking
- 삽입 이상
- 갱신 이상
- well-know port
- null
- Today
- Total
어 나 갱수.
[네트워크] IP와 Port의 개념 🦒 본문
IP(Internet Protocol)
웹 서버가 다른 컴퓨터에서 실행되고 있기 때문에, 웹 브라우저가 웹 서버에 연결하려면, 웹 서버가 실행 중인 컴퓨터의 주소를 알아야 하는데 이 주소를 IP주소로 합니다.
이러한 IP주소는 형식을 외우거나 구별하기 어렵기 때문에, DNS를 통해 구별하기 쉬운 도메인 주소로 변환된다.
도메인주소로 웹 브라우저에 접속할 때도 DNS를 통해 IP주소를 알아내고 통신을 이어갑니다.
Port
포트는 “논리적인 접속장소”를 뜻하며, 인터넷 프로토콜인 TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용한다.
네트워크 상에서 통신을 할 때 IP 주소를 바탕으로 해당 서버가 있는 컴퓨터에 접근하게 된다.
IP 주소가 건물 주소라면 포트 번호는 건물 내 호수와 같습니다.
하나의 IP에서 여러 애플리케이션을 실행할 경우, 컴퓨터에는 여러 개의 서버가 실행하게 된다.
이때 포트번호를 통해 대상 IP 기기의 특정 애플리케이션의 서버에 접속할 수 있도록 알려주어야 한다.
또 다른 예로 자바 Spring 프로젝트를 실행하면, 나타나는 화면에 Tomcat started on port(s): 8080과 같은 숫자가 표현된다. 이 숫자는 IP주소가 가리키는 PC 접속할 수 있는 통로(채널)를 의미한다.
로컬 환경에서 실행했을 때 로컬 PC의 IP 주소로 접근하여 8080번이 통로를 통해 실행 중인 서버를 확인할 수 있다. 이때 이미 사용 중인 포트는 중복해서 사용할 수 없다.
이렇게 같은 서버의 다른 포트번호로 Spring 프로젝트는 실행시킬 수 있다.
브라우저 창에서 포트 번호를 입력하지 않는 이유?
위 설명에 따르면 서버와 통신할 때는 ip주소와 port번호가 둘 다 있어야 합니다. 하지만 주소를 통해서 알 수 있는 것은 ip주소뿐이다. 보통은 port번호 없이도 웹 사이트에 접속할 수 있고, 정상적으로 통신이 가능합니다.
주소창에 도메인 주소를 입력해서 엔터를 누르게 되면 브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어 있습니다.
만약 3000번 포트로 통신하고 싶다면 아래와 같이 입력을 하고 접속할 수 있습니다.
잘 알려진 포트(well-known port)란?
포트에는 잘 알려진 포트(well-known port)라는 개념이 있습니다.
포트번호는 0 ~ 65,535까지 사용할 수 있습니다. 그중에서 0 ~ 1023번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있습니다.
이렇게 규약에 따라 이미 정해져 있는 포트를 잘 알려진 포트라고 부릅니다.
대표적인 포트번호 3가지를 알아보겠습니다.
- 22번 (SSH, Secure Shell Protocol) : 원격 접속을 위한 포트 번호
- 80번 (HTTP) : HTTP로 통신할 때 사용되는 포트 번호
- 443번 (HTTPS) : HTTPS로 통신을 할 때 사용되는 포트 번호
위에서 설명한 대표 포트번호를 무조건 사용해야 하는 건 아닙니다. 다르게 따로 설정을 하고 사용해도 됩니다.
예를 들어 HTTP 통신을 할 때 80번 포트 말고 3000이나 8080 포트를 사용해서 통신해도 상관없습니다.
'네트워크' 카테고리의 다른 글
[네트워크] 인터넷이란 🫠 (1) | 2024.02.11 |
---|---|
[Web] 웹 소켓(Web Socket)이란? 😙 (0) | 2023.10.01 |
[네트워크] CORS 너 뭐냐?? 🐥 (0) | 2023.08.04 |
[네트워크] Web Server와 WAS의 차이 🙏 (0) | 2023.08.03 |
[네트워크] HTTP 했으니까 덤으로 HTTPS 까지??? 😙 (1) | 2023.07.31 |