logo태영이의 공부방

[파이썬 플라스크] HTTP와 HTTPS의 차이

2022년 10월 15일

개요

만들어둔 api에 프론트에서 연결하려고 했더니 아래와 같은 오류가 발생하였다.

에러를 보면 https로 시작한다.에러를 보면 https로 시작한다.

이는 간단히 https를 http로 바꾸면 해결된다.

문제 없이 연결되었다.문제 없이 연결되었다.

왜 이런 현상이 발생하는건지 알아보기 위해 http와 https의 차이점에 대해 알아보도록 하자.

Hyper Text Transfer Protocol, HTTP

HTTP란 html 문서 같은 자원을 보내고 받기 위한 표준 프로토콜(통신 규약)이다. — 참고

기본으로 80번 포트를 사용하여 요청을 주고 받으며 무상태 프로토콜이다.

무상태 프로토콜?

각각의 데이터 요청이 서로 독립적으로 관리가 되는 프로토콜이라는 의미이다.

클라이언트-서버 모델을 따르기 때문에 클라이언트가 요청을 생성하기 위한 연결을 연 다음, 응답을 받을 때까지 대기한다.

암호화 되지 않은 데이터를 전송하는 프로토콜이기 때문에 제 3자가 정보를 조회할 수 있다.

HTTP Secure, HTTPS

HTTP 프로토콜의 암호화된 버전이 바로 HTTPS이다. — 참고

정보를 암호화하는 SSL(Secure Socket Layer) 프로토콜을 이용하여 데이터를 주고 받는다고 한다.

따라서 금융 활동과 같이 보안이 필요한 정보를 서버와 안전하게 주고 받을 때 사용한다.

http를 암호화 하는 방식에 따라 https 서버에 요청을 하려면 공개키가 필요하다.

암호화 방식에 대해 간단히 살펴보자면, 암호화와 복호화가 가능한 개인키, 공개키가 있다.

그 중 공개키는 말 그대로 모두에게 공개하여 저장소에 등록한다.

  • 개인키로 암호화 > 공개키로 복호화
  • 공개키로 암호화 > 개인키로 복호화

대충 이런.. 과정이라고 하는데 사실 이해는 하지 못했다.

자세한 알고리즘의 경우 이 블로그를 참고하길 바란다.

마치며

https가 보안 관련된 규약이라는 것을 알았으니,

http는 단순 정보 조회에, https는 중요한 정보 처리에 이용하면 되겠다.