TCP/IP - Application Layer

HTTP, FTP, SMTP, SSH

  • Applicion layer 계층에서 쓰이는 프로토콜은 HTTP, SMTP, SSH, FTP 가 대표적이다.

  • 웹 서비스. 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층이다.

1. HTTP

  • Hypertext Transfer Protocol 은 서버와 브라우저 간에 데이터를 주고 받기 위해 처음 고안된 프로토콜이다.

  • 하지만 요즘에는 서버 간에도 통신할 때 많이 이용한다.

1-1. 헤더를 통한 확장이 쉽다.

  • 헤더 값에다가 어떠한 값을 넣어서 HTTP 요청을 할 때, 쉽게 다른 값을 추가할 수 있다.

1-2. HTTP는 stateless 하다.

  • 동일한 연결에서 연속적으로 수행되는 두 요청 사이에 연속적인 상태(state)이 없다.

  • 즉, 연속되는 두 개의 요청에서 서버와 클라이언트는 서로 그 이전의 송수신자임을 알지 못한다.

2. SSH

  • Secure SHell Protocol 은 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜이다.

  • 예를 들면, 나의 로컬 노트북에서 AWS의 원격 EC2 서버에 접속하고자 할 때, 프라이빗키를 통해서 ssh 명령어를 통해 원격 접속을 할 수 있다.

    • ssh [pem] [user]@[serverIP]

  • SCP 를 이용하면, SSH 를 이용해서 파일을 전송할수도 있다.

    • scp [source] [destination]

3. FTP

  • File Transfer Protocol 의 약자로, 노드와 노드 간에 파일을 전송하는데 사용되는 프로토콜이다.

  • 요즘에는 파일을 암호화해서 전송하는 FTPS 나 SFTP로 대체되고 있다.

  • 예시

    • FileZilla 소프트웨어를 통해 FTP 프로토콜로 원격 서버에 파일을 전송하거나 로컬컴퓨터로 다운받을 수 있다.

4. SMTP

  • Simple Mail Transfer Protocol

  • 인터넷을 통해 메일을 보낼 때, 사용되는 프로토콜이다.

  • 흔하게 서비스를 운영하다보면, 메일링 기능이 필요하게 된다. 이 때, 반드시 SMTP 프로토콜을 이용하여 보내게 된다.

    • javascript 진영에서는 Nodemailer 라는 라이브러리가 존재

      • JS 를 기반으로 SMTP 를 통해 메일 전달 할 수 있는 라이브러리

Last updated