HTTP vs HTTPS 차이점에 대하여
바쁜 현대인을 위해 선 3줄 요약 하겠습니다.
1. HTTPS 는 HTTP 에 비해 비교적 안전하다.
2. 하드웨어의 발전으로 HTTP 와 HTTPS 의 속도가 인간관점에선 비슷해졌다.
3. 보안상 HTTPS 를 사용하는것이 유리하다.
최근 여러가지 논란들로 HTTP 와 HTTPS 라는 용어를 들어보신분들이 많을거라고생각합니다.
현대인의 고질병 아는척
우리도 어디가서 아는척이라도 한번 해보기위해 HTTP 와 HTTPS 의 차이에 대해 알아보겠습니다.
HTTP 랑 HTTPS 가 뭡니까
HTTP 란 ?
HTTP(HyperText Transfer Protocol, 문화어: 초본문전송규약, 하이퍼본문전송규약)는 WWW 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다. HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.
[출처] : https://ko.wikipedia.org/wiki/HTTP
HTTPS 란 ?
HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS,[1][2] HTTP over SSL,[3] HTTP Secure[4][5])는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했으며, 전자 상거래에서 널리 쓰인다. HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다. 보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘에 달려있다. HTTPS를 사용하는 웹페이지의 URI는 ‘http://’대신 ‘https://’로 시작한다.
[출처] : https://ko.wikipedia.org/wiki/HTTPS
많은 분들이 딱딱한 사전적인 정의를 좋아 하지않으실것을 알고있지만
그래도 필요할것같아 가져왔습니다.
딱딱하기만한 용어의 정의는 이제 집어치우고 상대적으로 부드러운 제 의견을 들려드리겠습니다.
HTTP 는 Hypertext transfer protocol 의 약자로 인터넷에서 하이퍼 텍스트 를 교환 하기위한 통신 규약입니다.
HTTP 는 한마디로 하이퍼 텍스트를 보내기 위한 통신 약속 입니다.
Q. 생각보다 복잡한데.. 그래서 하이퍼 텍스트가 뭔데요 ?
A. 주제에 벗어나는 설명이 길어질수있기 때문에 참조 글 첨부합니다.
[출처] : https://codedragon.tistory.com/4984
쉽게 설명하기 위해 HTTP 텍스트 통신에 관한 예를 한번 들어보겠습니다.
누군가 만약 제 블로그에 들어와 카테고리 페이지를 클릭 한다면
https://landwhale2.github.io/categories/
서버에는 이러한 요청이 전송될것입니다.
“GET /categories HTTP 1.1”
실제 환경에서는 다른 값들도 들어가게 되지만 예시로 사용하기위해 간단히 명시했습니다.
서버에서 이러한 요청을 받는다면 웹서버가 해당하는 페이지를 사용자에게 전송해주게 됩니다 (렌더링), 우리가 평소에 웹페이지를 보듯이 말이죠.
그럼 HTTP 와 HTTPS 는 이름이 비슷한데 결정적인 차이가 뭐죠 ?
S == Secure(보안) 이라는 의미가 추가된것입니다.
그럼 제대로된 차이를 알아보겠습니다.
1. HTTP 는 보안에 매우 취약하다.
HTTP 는 암호화가 되어있지않은 프로토콜입니다.
모두가 여자친구가 있다고 가정해보겠습니다. 나는 여자친구와 비밀스럽게 대화를 나누고싶은데, 누군가가 남 이야기를 엿듣는 지독한 취미가 있어
나와 여자친구가 한 대화 모두를 중간에 가로채 알아낸다고 상상해보겠습니다. 정말 소름 끼치는 일이겠지요 ?
누구도 이러한 경험을 하고싶지 않을것입니다. 이 때문에 HTTPS 라는 보안성을 강화한 프로토콜이 만들어지게 되었습니다.
2. url 차이
HTTP 는 http:// 라는 url 로 시작하며 HTTPS 는 https:// 로 시작하는 차이가 있습니다.
3. 속도의 차이
별 다른 처리없이 HTTP 를 사용하는것과 달리 HTTPS 는 암호화통신이 이루어지기 때문에 HTTP 보다 시간이 더 많이 소요됩니다.
하지만 걱정할 필요는 없습니다, 현대의 하드웨어는 더욱 더 발전했으며 컴퓨터의 관점에서는 시간이 더 걸린다고 할 수있지만
인간인 우리의 관점에서는 체감을 거의 할 수 없을정도입니다.
그렇기 때문에 우리는 HTTPS 를 사용하는것이 유리하다고 할 수 있습니다.
HTTPS 의 암호화는 어떻게 이뤄지나요?
HTTPS 는 처음 통신을 할때 암호화 키를 서로 주고받게 됩니다.
암호화 키를 서로 주고받을때 암호키가 노출이 되면 아무런 소용이 없을것입니다.
이때 암호화 키의 값이 안전하게 전달되게 만들어 주는것이 HTTPS 서버 인증서입니다. (SSL)
SSL 인증서는 클라이언트와 서버 간의 통신을 다른 제 3자가 보증해주는 전자화된 문서입니다.
클라이언트와 서버간 서로 통신을 할때에 인증서를 주고받고, 이 인증서가 신뢰할수있는 것인지를 검증한 후에야 비로소 완료 라는 메세지를
서로 교환한 후에 메세지 교환이 이루어지게 됩니다.
이때 서버와 클라이언트간의 메세지교환이 마치 사람이 누군가와 만났을때 악수를 하는것과 비슷하다고하여,
이과정을 SSL Handshake 라고 부르게 되었습니다.
결론
HTTPS 는 HTTP 에 비해 안전하다