📌 HTTP와 HTTPS의 차이에 대해 알아보자
주제: HTTP와 HTTPS의 차이
먼저 HTTP랑 HTTPS가 뭔데?
웹 프로토콜의 종류다.
웹 프로토콜이란 웹에서 사용되는 통신규약을 말한다.
쉽게 말하면 “우리 이렇게 이렇게 서로 주고 받기로 약속하자!”라는 약속을 말한다.
HTTP는 TCP/IP 4계층 시스템을 기반으로 동작한다.
우리는 어떤 사이트에 접속할 때, 주소창에 url를 입력하거나 링크를 클릭하면 브라우저가 HTTP Request
를 서버에 요청한다.
요청을 받은 서버는 그에 맞는 HTTP Response
를 응답한다.
HTTP의 특징
1. 비연결성
클라이언트와 서버가 연결되어 있지 않다.
우리가 웹을 사용할 때, 웹은 마치 계속 연결되어 있는 것처럼 보이지만 실시간으로 연결되어 있는 것이 아니다. 단지 요청과 응답형태로 주고받을 뿐이다.
이는 인터넷 상의 불특정 다수에게 빠른 속도로 응답할 수 있다는 이점이 있다.
그러나, 동일한 클라이언트를 대상으로 매번 새로운 연결을 시도/해제 해야 하기 때문에 오버헤드가 발생할 수 있다.
오버헤드: 처리 시간 및 메모리등이 추가적으로 사용되는 현상
2. 무상태
서버가 클라이언트의 상태를 보존하지 않는다.
즉, 클라이언트의 식별이 불가능하다.
때문에 쿠키나 세션을 이용하여 클라이언트를 식별한다.
HTTP의 단점
HTTP 프로토콜로 전송되는 정보는 암호화가 되어있지 않다.
때문에 데이터를 쉽게 도난당할 수 있다.
HTTP 프로토콜은 완전성을 보장하지 못한다.
때문에 전송 과정에서 데이터가 변조될 수 있다.
HTTP 프로토콜은 통신 상대를 인증하는 절차가 없다.
HTTPS는 그럼 뭐지?
HTTPS는 HTTP의 확장버전이다.
HTTPS의 S는 Secure로 보안을 뜻하는데, 위에서 살펴본 HTTP의 데이터 보안에 대한 조치가 추가된 버전이 HTTPS라고 할 수 있다.
SSL(TLS)
SSL(Secure Sockets Layer)은 암호화 기반 인터넷 보안 프로토콜이다.
Netscape가 1995년에 처음 개발했다.
SSL과 TLS의 용어 구분이 헷갈릴 수 있는데 SSL는 사실 현재 보안취약점으로 인해 퇴출된 상태이며 TLS는 SSL을 보완하여 국제 인터넷 표준화 기구(IETF)에서 개발하였다.
그렇지만 보편적으로 SSL이라고 부른다.(이상하지만 이게 맞다)
SSL 인증서
SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서로서, 이러한 보증 역할을 하는 CA(Certificate authority)기업이 인증서를 발급해준다.
인증서는 ROOT 인증서, Intermediate(중간 인증서), Leaf(서버 인증서)로 나뉘며, 브라우저에는 CA기관의 리스트가 저장되어 있다.
ROOT 인증서는 신뢰할 수 있는 CA기업의 인증서이며 중간 인증서는 루트 인증서와 SSL 인증서 사이에 구분을 만들어 위험을 완화하도록 설계된 인증서이다.
웹 개발자가 본인의 사이트를 HTTPS로 접근할 수 있게 발급받는 인증서가 SSL 인증서다.
SSL의 특징
HTTPS 통신에서 데이터를 암호화하기 때문에 데이터가 도난되더라도 데이터를 지킬 수 있다. SSL 인증서를 통해 도메인의 신뢰성을 검증할 수 있다.
데이터 송/수신 과정에서 암/복호화가 발생하므로 상대적으로 HTTP 통신보다 속도가 느리다.
SSL은 보안적 측면 외에도 한 가지 이점이 존재하는데, 바로 검색엔진 최적화(SEO) 측면의 이점이 존재한다.
특히 구글의 경우, SSL 존재 여부가 검색 순위의 결정 요소에 포함한다고 발표했다.
Google에서는 지난 몇 달 동안 사이트가 검색 순위 결정 알고리즘에 반영될 신호로 암호화된 보안 연결을 사용하는지를 고려하여 테스트를 실행했습니다. 결과는 긍정적이었으며, 이에 따라 HTTPS를 순위 결정 신호로 사용하려고 합니다.
https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
출처
http://terms.tta.or.kr/dictionary/dictionaryView.do?subject=%ED%86%B5%EC%8B%A0+%EA%B7%9C%EC%95%BD
https://velog.io/@wkdtjrrms0/HTTP%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C%EC%9A%94
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-HTTP-Overhead-%EB%9E%80
https://blog.itcode.dev/posts/2021/08/18/about-ssl
https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
https://brunch.co.kr/@sangjinkang/47