TIL

HTTP와 HTTPS의 차이점

빈코 2024. 4. 25. 11:24

http vs https

개요

안녕하세요 빈코입니다. 오늘은 저번 포스팅인 HTTP Method 사용법에 이어서 HTTP와 HTTPS의 차이에 대해 포스팅하려고 합니다. HTTP와 HTTPS는 모두 클라이언트와 서버 간 통신을 위한 통신 프로토콜입니다. 하지만 개인정보가 중요해짐에 따라 프로토콜의 보안도 강화되면서 HTTP보다 더 안전한 버전 HTTPS가 탄생하였습니다. 그럼 하단에서 자세히 살펴볼까요?

 

 

HTTP📙

HTTP(Hypertext Transfer Protocol)데이터를 평문으로 전송합니다. 따라서 데이터가 네트워크를 통해 전송되는 동안에는 제3자가 가로채어 볼 수 있습니다. 민감한 정보가 포함된 경우에는 보안상 문제가 될 수 있겠죠? 예를 들어, 로그인 정보나 카드 정보 등 민감한 개인정보를 전송할 경우 HTTP 프로토콜을 사용한다면 해커가 이 정보를 가로챌 수 있는 위험성이 있습니다.

 

또 다른 특징으로는 HTTP는 TCP/IP 위에서 동작하는 애플리케이션 계층의 프로토콜이면서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용합니다. 또한, HTTP는 인증서가 필요하지 않지만 그렇기에 웹사이트가 신뢰할 수 있는지를 확인하는 것이 어려운 단점이 있습니다.

 

출처 : https://mangkyu.tistory.com/98

 

HTTPS📘

HTTPS(Hyper Transfer Protocol Secure)는 보안 소켓 계층(SSL/TLS)을 사용하여 데이터를 암호화합니다. 이것은 전송되는 데이터를 안전하게 만들어주기 때문에 데이터가 가로 쳐져도 암호화되어 있어 해독할 수 없습니다. 그렇기에, 사용자의 개인 정보나 민감한 정보를 안전하게 보호할 수 있습니다.

 

또 다른 특징으로는 HTTPS에서는 웹사이트가 안전한지를 확인하기 위해 SSL 인증서가 필요합니다. 브라우저는 이 인증서를 사용하여 웹사이트의 신뢰성을 확인할 수 있으며 443번 포트를 사용합니다.

 

HTTPS의 연결 과정은 크게 '클라이언트 요청, 서버 인증서 제공, 인증서 확인, 공개키 교환, 암호화된 통신' 5가지로 나뉩니다. 

 

1) 클라이언트(웹 브라우저) 요청

- 사용자가 웹 브라우저를 통해 HTTPS로 접속하려는 웹 사이트의 주소를 입력하면, 브라우저는 해당 주소의 서버에 연결을 시도하고 이때, 브라우저는 HTTPS를 사용하여 연결하고자 함을 알리기 위해 443번 포트를 사용합니다.

 

2) 서버 인증서 제공

- 서버에 도착한 요청은 서버가 해당 요청에 응답하기 전에 서버의 디지털 인증서를 제공하도록 요구합니다. 인증서는 서버의 신원을 확인하기 위한 것으로, 공개키 기반 암호화 방식을 사용하여 정보를 암호화하고, 디지털 서명을 확인할 수 있는 중앙기간(CA)에 의해 발급됩니다.

 

3) 인증서 확인

- 웹 브라우저는 서버가 제공한 인증서를 받습니다. 이 인증서에는 서버의 공개키와 서버의 정보가 포함되어 있으며, 브라우저는 이 인증서를 서버가 실제로 웹 사이트의 소유자임을 확인하기 위해 CA의 공개키를 사용하여 디지털 서명을 확인합니다. 이를 통해 서버의 신원을 검증합니다.

 

4) 공개키 교환

- 브라우저가 서버의 신원을 확인하면, 안전한 연결을 설정하기 위해 세션 키를 생성합니다. 이 세션 키는 대칭키 암호화 방식을 사용하여 통신을 보호하는 데 사용되며, 브라우저는 서버의 공개키를 사용하여 세션 키를 암호화하고, 서버는 자신의 개인키를 사용하여 이 암호문을 해독하여 세션 키를 획득합니다.

 

5) 암호화된 통신

- 클라이언트와 서버 간의 통신은 위에서 획득한 세션 키를 사용하여 암호화됩니다. 이를 통해 데이터는 안전하게 전송됩니다.

 

마치며

지금까지 HTTP와 HTTPS의 차이를 알아보았습니다. 실무에서는 관리서버를 80번 포트인 HTTP를 사용하고, API 통신은 민감한 정보들이 많아 443번 포트인 HTTPS를 사용하는 것이 일반적입니다. HTTP와 HTTPS는 겉보기에 간단한 차이이지만, 정확하게 어떻게 동작되는지 파악하고 상황에 맞게 사용하는 것이 좋습니다😄


👨‍👩‍👦‍👦 오픈채팅방 운영

취업을 준비하는 예비 개발자분들을 위한 질문&답변할 수 있는 공간을 만들었습니다. 취업과 이직을 하기 위해서 어떤 걸 중점적으로 준비해야 하는지부터 포트폴리오&이력서 작성법 등 다양한 질문들을 받고 답변을 드립니다. 참여하셔서 다양한 정보 얻고 가시면 좋을 것 같네요😁

 

참여코드 : 456456

https://open.kakao.com/o/gVHZP8dg

 

비전공 개발자 취업 준비방(질문&답변)

#비전공 #개발자 #취업 #멘토링 #부트캠프 #국비지원 #백엔드 #프론트엔드 #중소기업 #중견기업 #자바 #Java #sql

open.kakao.com

 

 

 

관련 포스팅

* HTTP Method 종류 및 사용 방법(GET, POST, PUT, DELETE)

반응형