1. 웹 서버
: 웹 브라우저의 요청에 따라 html, 이미지 등의 정보를 제공하는 SW 또는 그 기능을 탑재한 컴퓨터
: 웹 서버 중 가장 큰 점유율을 차지하는 SW는 NGINX(2021년 12월 기준)
: 이외에 아파치 HTTP 서버, 마이크로소프트 Internet Information Server 등이 있음
2. 웹 서버 통신
HTTP 요청
1. 요청 라인
> 메서드 이름, 대상 리소스의 URI, HTTP 버전
> GET, POST 메서드 등
2. 헤더 부분
> 클라이언트 수용 가능 유형 등 정보
3. 바디 부분
> 서버에 보내는 정보
* 현재는 대부분 SSL/TLS를 이용하는 HTTPS 프로토콜 사용
HTTP 응답
1. 상태 라인
> 요청 처리 결과를 나타내느 3자리 숫자
> 100~199 : 정보 제공
> 200~299 : 성공
> 300~399 : 리다이렉트
> 400~499 : 클라이언트 오류
> 500~599 : 서버 오류
2. 헤더 부분
> 서버에서 보낸 정보 유형, 콘텐츠 크기, 갱신 일시 등
3. 바디 부분
> 클라이언트가 지정한 URL 콘텐츠 정보
3. 웹 애플리케이션 서버
웹 시스템의 사용자 인터페이스를 이용해 데이터베이스로 관리되는 데이터를 처리하는 서버
예시
1) PHP
: 오픈 소스 소프트웨어
: HTML 파일에 프로그램을 삽입하는 형태
: 웹 서버 모듈로 작동해 웹 서버 소프트웨어와 조합해 웹 애플리케이션 서버로 보는 경우가 많음
2) 톰캣
: 자바로 애플리케이션 서버 구축
4. 3계층 클라이언트 서버 시스템
1. 표현 계층
: 사용자 GUI 담당 -> 웹 서버
2. 응용 계층
: 업무 처리에 의존하는 데이터 가공 -> 웹 애플리케이션 서버
3. 데이터 계층
: 데이터베이스 처리 -> DB 서버
=> 각 기능을 독립적으로 관리할 수 있는 것이 가장 큰 장점
5. DNS와 이름 해석
웹 서버 통신은 URL(도메인)을 이용한다. -> DNS 서버가 이름을 해석해 URL을 IP 주소로 변환해주는 것
DNS(Domain Name Service)
: URL이나 이메일 주소를 IP 주소로 변환하는 메커니즘이나 서버
: DNS 서버에 인터넷상 모든 정보가 설정되어 있는 것은 아니기에 모르는 IP 주소가 있을 수 있음
: 모르는 IP 주소는 gilbut.co.kr을 관리하는 다른 DNS 서버에 문의해 이름 해석
이름 해석 메커니즘
이름을 해석할 수 없던 조직 내 DNS 서버는 자신이 클라이언트가 되어 최상위 도메인을 관리하는 DNS 서버(= 루트 DNS)에 문의
6. DNS 서버의 종류와 소프트웨어
1. DNS 서버에는 정보 그 자체가 있는 DNS 콘텐츠 서버와 질의한 정보의 메모만 있는 DNS 캐시 서버가 있음
2. DNS 서비스를 정지하면 사용자 생활에 큰 영향을 주므로 기본 서버와 보조 서버 두 대로 구성할 때가 많음
DNS 서버를 실현하는 SW 예
1) BIND
: 가장 많은 점유율
: 리눅스 계열 OS에서 표준으로 채택됨
2) PowerDNS
: GUI로 관리할 수 있는 것이 특징
3) NSD
: 위 2개의 소프트웨어에 비해 속도가 빠르지만 업데이트나 Q&A 서비스의 해외 지원이 약한 편
=> DNS 서버는 직접 구축하지 않고 인터넷 서비스 제공자 등이 제공하는 DNS 서비스를 이용할 때도 많음
7. 메일 서버
일반적으로 이메일 송수신은 송신(SMTP)과 수신(POP3)을 나눠 생각해야 함
메일이 전달되는 과정
<이메일을 보내는 사람>
1. 이메일을 작성하고 본문, 목적지 주소 설정
2. 전송에 필요한 정보가 이메일 소프트웨어에서 설정됨(보내는 사람 정보는 대부분 메일 소프트웨어 설정으로 자동 삽입)
3. 전송
<메일 서버>
4. 목적지 주소를 보고 목적지 도메인에서 관리되는 메일 서버 파악(DNS에 의한 이름 해석 + MX 레코드 화깅ㄴ)
5. 이메일이 목적지 도메인에서 관리되는 메일 서버에 도착
6. 수신자가 원하는 타이밍에 이메일 수신
SMTP
: 메일 클라이언트에서 메일 서버로 이메일을 보내거나 메일 서버 간 이메일을 전송할 때 사용하는 프로토콜
POP3
: 클라이언트가 서버에서 이메일을 받을 때 사용되는 프로토콜
MX 레코드
: DNS 서버에서 정의되는 도메인 정보 중 하나
: 도메인으로 오는 이메일을 어떤 메일 서버로 배달해야 하는지 지정하는 레코드
메일 주소 구성
대체로 "사용자 이름@도메인 이름"으로 구성
user1@gilbut.co.kr -> 사실은, user1@mail.gilbut.co.kr
-> 호스트 이름인 mail을 생략할 수 있는 이유는 DNS 서버의 MX 레코드를 사용해 대상 도메인의 메일 서버 이름을 가져올 수 있기 때문
이메일을 수신하는 프로토콜 : POP & IMAP
이메일을 수신하는 프로토콜에는 앞서 설명한 POP3 외에도 IMAP이 있음
1. POP(Post Office Protocol)
: 직역하면 우체국 프로토콜
: 메일 스풀이라는 메일 서버 영역에 이메일을 저장해두고 사용자는 원하는 시간에 메일 스풀에서 이메일을 내려받음
: 내려받은 데이터는 메일 스풀에서 삭제됨
2. IMAP(Internet Message Access Protocol)
: 인터넷 메일에서 사용됨
: POP은 이메일을 내려받아야 하는 반면, IMAP은 메일 서버에 이메일을 저장해 둔 채 열람 가능
FTP 서버
File Transfer Protocol, 파일 전송을 목적으로 하는 서비스
ex) 리눅스 계열의 vsftpd 소프트웨어, 윈도우 계열의 인터넷 정보 서비스(IIS) 등
클라이언트에서 FTP 서버를 조작하는 방법
1. 커멘드라인 사용 : 명령어를 통해 원하는 동작을 실행해 전문 지식이 필요하고 다루기 어려움
2. 클라이언트 소프트웨어 사용 : FFFTP, WinSCP 등
FTP 서버 통신
: TCP 프로토콜의 일종이지만, 다른 프로토콜과 달리 포트 2개 사용
: 제어용 -> TCP 21번 포트
: 전송용 -> TCP 20번 포트
1. 클라이언트가 21번 포트에 접속해 제어용 커넥션 시작
2. 클라이언트가 전송용 커넥션을 위한 포트를 준비하고 그 번호를 서버에 전달
3. 클라이언트는 서버에 파일 전송 요청
4. 서버는 2번에서 전달밭은 클라이언트의 포트에 접속해 전송용 커넥션 시작
> 액티브 모드 : 서버에서 클라이언트로 연결을 거는 방식 -> NAPT등 IP 주소, 포트 번호가 변경되는 라우터를 경유하는 경우 동작하지 않을 수 있음
> 패시브 모드 : 서버가 열어놓은 포트를 통해, 클라이언트가 연결을 거는 방식
5. 파일 전송 시작
'Study > 그림으로 이해하는 서버 구조와 기술' 카테고리의 다른 글
| [그림으로 이해하는 서버 구조와 기술] 5. 내부용 서버를 알아보자 (0) | 2025.04.28 |
|---|---|
| [그림으로 이해하는 서버 구조와 기술] 3. 서버 형태를 알아보자 (0) | 2025.03.16 |
| [그림으로 이해하는 서버 구조와 기술] 2. 네트워크 기초 지식 (3) | 2025.02.02 |
| [그림으로 이해하는 서버 구조와 기술] 1. 서버 기초 지식 (1) | 2024.12.01 |