1. 네트워크란?
네트워크란?
👉 여러 컴퓨터들을 통신 회선으로 연결한 것
- LAN(Local Area Network) : 가정, 회사, 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것
- WAN(Wide Area Network) : LAN을 연결한 것. 인터넷
2. 서버와 클라이언트
서버(Server)란?
👉 서비스를 제공하는 프로그램
처리 결과를 응답으로 제공함
사용자가 언제 서비스를 요청할지 모르기 때문에 항상 실행해야 함
클라이언트(Client)란?
👉 서비스를 요청하는 프로그램
크롬, 인터넷 익스플로러, 엣지 등 브라우저가 클라이언트가 될 수 있음
언제든지 사용자에 의해 종료될 수 있음
그렇다면 프로그램들은 어떻게 데이터를 주고 받을까 ❓
👉 컴퓨터가 연결이 되어야 한다.
3. IP 주소
🩶 내부IP 주소를 얻는 방법 🩶
- 명령 프롬프트에 접속해
ipconfig
를 입력한 후 엔터를 누른다. (맥OS는 ifconfig) - IPv4 주소라고 되어 있는 네 자리로 구성된 숫자가 내부IP이다.
- 내부IP는 안에서만 사용되는 IP
- 내부IP만으로는 안 되고 인터넷을 이용해서 연결해야 함
👉 LAN과 WAN을 연결하는 외부IP도 필요함
그렇다면, IP주소를 모르는 경우,
해당 웹페이지에 어떻게 접근할까?
👉 우리는 웹페이지의 IP주소를 모르더라도 도메인으로 접근할 수 있다.
브라우저는 도메인을 DNS에 해석해달라고 요청을 하고, 114 같은 역할을 하는 DNS(Domain Name System)는 그에 해당하는 IP를 브라우저에 보내주면 브라우저가 그제서야 그 IP로 연결을 시도한다.
DNS란?
👉 도메인 이름으로, IP를 등록하는 저장소이다.
- DNS 역시 하나의 서버이다. (ipconfig /all로 IP 확인 가능)
- 외부IP로 제공이 된다.
결론
👉 PC가 외부의 PC와 연결하려고 할 때, IP주소(내부IP 주소)와 DNS의 IP가 설정되어 있어야 한다.
4. Port 번호
Port란?
👉 운영체제가 관리하는 서버 프로그램의 연결 번호
🩶 Port 번호가 필요한 이유? 🩶
👉 IP주소는 클라이언트가 서버 컴퓨터의 네트워크 어댑터까지 도달하기 위한 정보.
여기서 나아가 프로그램 쪽으로 연결하기 위해서는 프로그램이 갖고 있는 고유 번호를 알아야 함. 그것이 바로 Port 번호❗
결론
👉 프로그램까지 연결하고 싶다면 IP주소뿐만 아니라 Port 번호도 알아야 함
Port 번호는 운영체제에서 정해주게 된다.
웹 서버는 80번, 파일을 다운로드 받을 수 있는 FTP 서버는 21번, 오라클 DBMS는 1521번으로 바인딩을 할 수 있다.
기본적으로는 이렇게 설정이 되어 있으나, 수정이 가능하다.
그런데, 클라이언트도 하나의 프로그램이기 때문에 클라이언트의 포트 번호도 알아야 한다.
보통 클라이언트가 서비스를 요청할 때, 클라이언트가 사용하는 IP주소와 Port 번호를 같이 보내준다.
따라서 이것들을 가지고 클라이언트와 서버를 연결할 수 있고, 서버가 클라이언트로 응답을 보낼 수 있다.
클라이언트는 포트 번호를 명시적으로 부여하지 않는다.
👉 클라이언트가 실행할 때마다 운영체제가 임의로 번호를 부여하기 때문에 고정적인 포트 번호에 바인딩하지 않는다.
🩶 Port 번호 구분 및 범위 🩶
구분명 | 범위 | 설명 |
Well Known Port Numbers | 0~1023 | 국제인터넷주소관리기구가 특정 애플리케이션용으로 미리 예약한 Port |
Registered Port Numbers | 1024~49151 | - 구매해야 함 - 회사에서 등록해서 사용할 수 있는 포트 - 실제 서비스 할 때 사용 |
Dynamic Or Private Port Numbers | 49152~65535 | - 운영체제가 부여하는 동적 port 또는 개인적인 목적으로 사용할 수 있는 port - 테스트용 |
⚠ Port 충돌
여러 개의 프로그램이 하나의 Port 번호를 사용한다면, 그 Port 번호가 어떤 프로그램으로 연결을 할지 애매해짐
👉 프로그램이 실행이 안 됨
👉 프로그램마다 포트 번호가 달라야 함
'Web' 카테고리의 다른 글
웹 기술의 진화 과정 (자바 중심 + React) (0) | 2024.10.30 |
---|---|
[Web] Request 요청 / Response 응답 - 자바 웹 개발 워크북 (0) | 2024.03.29 |
[Web] 웹 서비스 구조 (2) | 2024.03.29 |