내일배움캠프 Node.js 스탠다드 반 - 7

OSI 7계층 - 응용 계층
- 컴퓨터 네트워크 프로그래밍에서 인터넷 프로토콜(IP) 컴퓨터 네트워크를 통하는 프로세스 간 통신 접속을 위해 설계되어 통신 프로토콜과 방식을 위해 보유된 추상 계층.
- 일반적으로 서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라 함.
- 웹 브라우저, 메일 프로그램 = 클라이언트
- 웹 서버 프로그램, 메일 서버 프로그램 = 서버
- 5계층의 세션 계층과 6계층의 표현 계층을 포함
HTTP (HyperText Transfer Protocol):
- 웹 서비스에서 클라이언트(웹 브라우저)와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜.
- 80번 포트를 사용해 HTTP통신을 함.
- 클라이언트가 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환.
- ex) 요청 예시: GET/index.html HTTP/1.1 응답 예시: HTTP/1.1 200 OK
- 1.0 버전에서 요청을 보낼때마다 연결했다 끊는 작업을 반복해 웹페이지가 느리게 보임.
=> 1.1버전에서 keepalive라는 기능이 추가.
- keepalive : 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조.
FTP(File Transfer Protocol, 파일 전송 프로토콜):
- 서버와 클라이언트 간에 파일을 전송하기 위한 프로토콜. 일반적으로 통신 포트는 제어 용도로는 21번을 사용하고 데이터 전송 용도로는 20번 포트를 사용함.
SMTP(Simple Mail Transfer Protocol, 단순 메일 전송 프로토콜):
- 인터넷에서 메일을 송신하는 데 사용하는 프로토콜. 통신 포트는 일반적으로 25번을 사용한다. SMTP를 지원하는 서버를 SMTP 서버라고 함.
POP3(Post Office Protocol version 3):
- 인터넷에서 메일을 수신하는 데 사용하는 프로토콜. 통신 포트는 일반적으로 110번을 사용한다. POP3를 지원하는 서버를 POP3 서버라고 함.
DNS(Domain Name System, 도메인 이름 시스템):
- 네트워크에서 호스트 이름을 IP 주소로 변환하는 데 사용하는 시스템(서비스). DNS 서비스가 동작하는 컴퓨터(서버)를 DNS 서버라고 함.
- https://www.google.com와 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름, 앞에있는 www는 호스트 이름(서버 이름)이라 함.
- 전 세계에 흩어져 있고 모두 계층적으로 연결됨.
DNS의 이름 해석(name resolution)
컴퓨터와 DNS 서버 간에 일어나는 IP 주소 교환
- 컴퓨터에서 "이 도메인 이름의 IP 주소는 무엇인가요?"라고 DNS 서버에 질문.
- DNS 서버는 해당 요청에 해당하는 도메인 이름의 IP 주소를 알려줌.
- 컴퓨터가 IP주소로 해당 웹 서버에 접속.
- 요청한 첫번째 DNS 서버가 도메인의 IP주소를 모르는 경우
- 첫번째 DNS서버가 다른 DNS서버에 질의.
- 다른 DNS 서버로부터 받은 IP 주소를 다시 클라이언트에게 전달.