728x90
애플리케이션 계층이란 HTTP, SMTP, SSH, FTP가 대표적이며,
웹 서비스, 이메일 등 서비스를 실질적으로 사용자에게 제공하는 계층이다.
HTTP(Hypertext Transfer Protocol)
HTTP는 처음에는 서버와 브라우저 간 데이터 주고 받기를 위해 설계된 프로토콜이다.
지금은 브라우저 뿐만 아니라 서버와 서버 간의 통신에도 많이 이용된다.
- HTTP는 헤더를 통한 확장이 용이하다. 예를 들어, HTTP요청을 보낼 때, 헤더 값에 어떠한 값을 넣어 쉽게 다른 값을 추가할 수 있다.
- HTTP는 stateless하다. 동일한 연결에서 연속적으로 수행되는 요청 사이에 연속적인 상태(state)값이 기록되지 않는다.
SSH(Secure Shell Protocol)
SSH는 보안되지 않은 네트워크에서
네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜이다.
대표적으로 AWS의 EC2가 있다.
보통 프라이빗 키가 있는 경로에서 아래와 같이 키를 명시하고 실행한다.
ssh <pem> <user>@<serverIP>
SSH에 접근하여 리눅스 명령어를 통해 CLI 환경에서 작업을 진행한다.
또한, SCP를 이용해 SSH를 통해 파일을 전송할 수 있다.
scp <source> <destination>
FTP(File Transfer Protocol)
FTP는 노드와 노드 간 파일 전송에 사용되는 프로토콜이다.
현재는 파일을 암호화하여 전송하는 FTPS 또는 SFTP로 대체되고 있다.
*S: Secure
대표적인 FTP 소프트웨어로 파일 질라가 있다.
SMTP(Simple Mail Transfer Protocol)
SMTP는 인터넷을 통해 메일을 보낼 때 사용되는 프로토콜이다.
서비스를 운영하면 메일링 서비스를 하게되는데, 이때 node.js를 통해 메일을 보낸다면
SMTP를 사용해야 한다.
자바스크립트 진영에서는 Nodemailer라는 라이브러리를 사용하는데,
JS를 기반으로 SMTP를 통해 메일을 보내는 라이브러리이다.
아래는 nodemailer의 사용 예시 코드이다.
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: testAccount.user, // generated ethereal user
pass: testAccount.pass, // generated ethereal password
},
});
참고: inflearn 강의 'CS 지식의 정석 - 큰돌'
728x90
'컴퓨터 공학 & 통신' 카테고리의 다른 글
[개념 정리/네트워크] TCP/IP 4계층 - 인터넷 계층 (1) | 2023.07.11 |
---|---|
[개념 정리/네트워크] TCP/IP 4계층 - 전송 계층 (0) | 2023.07.11 |
[개념 정리] 네트워크 - TCP/IP 4계층 (0) | 2023.07.11 |
[개념 정리/네트워크] 네트워크 통신의 종류와 네트워크의 분류 (0) | 2023.07.06 |
[개념 정리/네트워크] 네트워크 토폴로지 5가지 종류별 특징 & 장단점 (0) | 2023.07.06 |