컴퓨터공학지식

[CS] Http와 Https의 차이점

자바칩 프라푸치노 2021. 9. 28. 15:05

 

[ HTTP(Hyper Text Transfer Protocol)란? ]

  • HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
  • 통신규약이라는 것은 내가 이렇게 줄테니까 너도 이렇게 보내!라고 약속을 한 것이다.

 

  • HTTP 기본적으로 요청/응답 (request/response) 구조로 되어있다.
    클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조.
    클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어 진다.
  • HTTP는 Stateless 이다.
    Stateless 란 말그대로 state(상태)를 저장하지 않는 다는 뜻.
    즉, 요청이 오면 그에 응답을 할뿐, 여러 요청/응답 끼리 연결되어 있지 않다는 뜻이다. 즉 각각의 요청/응답은 독립적인 요청/응답 이다.
    예를 들어, 클라이언트가 요청을 보내고 응답을 받은후, 조금 있다 다시 요청을 보낼때, 전에 보낸 요청/응답에 대해 알지 못한다는 뜻이다.
    그래서 만일 여러 요청과응답 의 진행과정이나 데이터가 필요할때는 쿠키나 세션 등등을 사용하게 된다

 

 

[ HTTP의 구조 ]

구조에 대해서는 다른 포스팅에서 자세히 알아보도록 하고

HTTP는 암호화가 되지 않는 평문 데이터를 전송하는 프로토콜이기 때문에 중요 정보를 주고 받으면 제 3자가 정보를 조회할 수 있었다. 그러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다.

 


[ HTTP(Hyper Text Transfer Protocol Secure)란? ]

HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다.

네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.

 

 

[ 공개키/개인키 ]

HTTPS는 공개키/개인키 암호화 방식을 이용해 데이터를 암호화하고 있다.

공개키와 개인키는 1쌍의 키이다.

  • 공개키: 모두에게 공개가능한 키
  • 개인키: 나만 가지고 알고 있어야 하는 키

 

암호화에 사용되는 두가지 방식

  • 대칭키 방식
  • -암호화/복호화 시, 동일한 키를 사용하는 방식.
  • 정보를 보내는 쪽과 받는 쪽 모두 동일한 키를 가지고 있어야 한다.
  • 어느 한 쪽이 생성한 키를 다른 한 쪽에게 안전하게 전달하는 것이 힘들다는 게 단점.
  • 공개키 방식
  • 두 개의 키로 암호화/복호화를 진행.
  • 암호화를 A키로 했다면 복호화는 B로, 암호화를 B로 했다면 복호화는 A로 해야 하는 식이다.
  • 하나는 개인키, 하나는 공개키이다.

 

 

공개키와 개인키로 암호화하면 다음과 같은 효과를 얻을 수 있다.

  • 공개키 암호화: 공개키로 암호화를 하면 개인키로만 복호화할 수 있다. -> 개인키는 나만 가지고 있으므로, 나만 볼 수 있다.
  • 개인키 암호화: 개인키로 암호화하면 공개키로만 복호화할 수 있다. -> 공개키는 모두에게 공개되어 있으므로, 내가 인증한 정보임을 알려 신뢰성을 보장할 수 있다.

 

 

 


[ 요약 ]

  • 둘다 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
  • HTTP는 암호화가 되지 않은 평문을 주고 받기 때문에 제3자가 정보를 조회할 수 있다.
  • 그 문제 해결을 위해 HTTPS가 등장했다.
  • HTTPS는 공개키/ 개인키 방식을 이용하여 암호화를 한다.

[ 차이 ]

  • HTTP는 보다 HTTPS가 암호화가 추가되었기에 보안에 안정성이 있다.
  • 하지만 HTTPS를 사용하면 암호화/복호화 과정이 필요하기 때문에 HTTP보다 속도가 느리다. 하지만 거의 차이없음.
  • 또한 인증서를 발급하고 유지하기 위한 추가 비용이 발생한다.
  • 개인정보와 같이 민감한 데이터를 주고 받아야한다면 HTTPS, 단순 정보 조회 처리는 HTTP사용

 

 

 

 

 

 

 

 

 

 

 

728x90