Network/Network

네트워크 프로토콜: HTTP, HTTPS, FTP

🌐 HTTP


HTTP(HyperText Transfer Protocol)는 서로 다른 시스템들 사이에서 통신을 주고 받도록 하는 여러 프로토콜 중 가장 대표적이고 기본적인 프로토콜이다. 대표적으로 인터넷을 사용할 때 서버에서 각 인터넷 브라우저에 데이터를 전송해주는 용도로 사용되고 있다. 

 

더 자세한 내용은 HTTP Requset와 Response에 대해 정리한 글에서 확인할 수 있습니다!


🌐 HTTPS


HTTPS(HyperText Transfer Protocol Secure)는 HTTP의 보안 문제점을 보완한 프로토콜이다.

🚨 HTTP의 문제점

HTTP는 서버에서 브라우저로 전송되는 정보가 암호화되지 않는다. 따라서, 공격자가 데이터를 중간에 탈취할 경우 그대로 공격자가 데이터를 읽을 수 있게 된다는 뜻이다. 

🤜 HTTP의 문제점 해결: HTTPS

HTTPS는 암호화되지 않는 HTTP의 문제점을 해결하기 위해 SSL 또는 TLS 프로토콜을 통해 세션 데이터를 암호화하도록 했다. 

 

✅ 전송 계층 보안: SSL, TLS

SSL과 TLS 모두 전송 계층 보안으로 각각 Secure Sockets Layer, Transport Layer Security의 준말이다.

전송 계층 보안은 TCP/IP 네트워크를 사용하는 통신에 적용되고, 통신 과정에서 전송 계층의 보안과 데이터 무결성을 확보해준다. 

TLS는 다음과 같은 3단계의 절차를 거치게 된다.

  1. 지원 가능한 알고리즘을 교환
  2. 키 교환 및 인증
  3. 대칭키 암호를 통한 암호화 및 메시지 인증

위 단계들을 거쳐 전송 계층에서 전달되는 세션 데이터들을 암호화하고 보호한다.

 


🌐 FTP


FTP(File Transfer Protocol)는 파일을 전송하는 프로토콜로, TCP/IP 네트워크를 사용하는 서버와 클라이언트 간의 파일 전송을 위한 프로토콜이다. 

 

쉽게 생각하면, 웹서핑을 하며 여러 사이트들을 둘러볼 때는 HTTP/HTTPS를, 간단한 메시지를 주고받을 때는 XMPP를, 인터넷에 파일을 주고받을 때는 FTP를 사용한다고 할 수 있다.

 

하지만 최근에는 FTP의 보안 문제로 인해 사용이 줄어들고 있는 추세이며, SFTP를 사용하거나 Dropbox 를 많이 사용하고 있다.


📜 참고

https://velog.io/@lzhxxn/Protocol-HTTP-HTTPS-FTP-FTPS-SSH-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

SMALL