인터넷을 하다 보면 사이트마다 아래의 그림과 같이 주소창 맨 앞 부분에 http 혹은 https라고 적혀 있는 것을 볼 수 있다. 이것은 과연 무엇을 의미하고 어떤 일들을 하는지 궁금증이 생겨 정리하게 되었다.
HTTP와 HTTPS에 대해서 말하기 전에 프로토콜(Protocol)이라는 것에 대해 알고 있어야 한다.
프로토콜에 대해 간단히 얘기하자면 프로토콜은 컴퓨터 내부나 컴퓨터들 사이에서 데이터를 교환하는 방식을 정의하는 규칙 세계로, 이러한 형식을 정의하는 규칙들의 집합을 프로토콜이라고 한다.
HTTP는 HyperText Transfer Protocol의 약자로 웹 상에서 정보를 주고받을 수 있는 프로토콜이다
주로 HTML 문서같은 리소스들을 간단하고 쉽게 가져올 수 있도록 해줌
클라이언트와 서버간의 프로토콜
서버와 클라이언트가 주고 받는 메시지를 그대로 노출하기 때문에 보안이 취약함
Method, Path, Version, Headers, Body 등으로 구성 되어있음
HTTPS는 Hypertext Transfer Protocol Over Secure Socket Layer의 약자로 HTTP에 데이터 암호화가 추가된 프로토콜이다
기본 구조나 사용 목적 등은 HTTP와 거의 동일 하지만, 데이터를 주고 받는 과정에 보안 요소가 추가되었음
인증서를 발급하고 유지하기 위한 추가 비용이 발생함
네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개화 암호키를 지원함
HTTP와 HTTPS의 가장 큰 차이는 단연 '보안' 기능이라고 말할 수 있다. HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고 받을 수 있다.
HTTPS를 이용하면 암호화 / 복호화의 과정이 필요하기 때문에 그만큼 HTTP보다 처리 속도가 느리다는 점이 있긴 하지만 요즘 서버와 네트워크 상태가 우수하면서 HTTP와 HTTPS의 처리 속도의 차이가 체감하기 어려울 정도로 좁혀졌고, 이로인해 HTTPS를 이용하는 웹 사이트가 많아졌다.
단순한 정보 조회 등 가벼운 웹 서핑을 하게된다면 HTTP를 사용해도 된다. 하지만 개인 정보와 같은 민감한 데이터를 주고 받아야 한다면 개인 정보 유출의 위험성이 있기 때문에 HTTP보다 HTTPS를 이용하는게 좋다.