본문 바로가기
FE/Web

HTTPS vs HTTP

by ideal_string 2022. 10. 27.

개발자에게 http와 https 중 고르라고 한다면 100명 중 100명은 https를 선택한다. 이는 보안이 걸린 문제이기 때문이다. 보안 걱정 없는 사이트라면 http도 문제없지만, 로그인 기능 등 개인 정보가 들어간다면 개발자는 여지없이 https를 채택할 테다. http는 무엇이고, https는 무엇이 다른 지 살펴보자.

 

HTTP

http는 hyper text transfer protocol의 약자로, 국문으론 하이퍼본문전송규약으로 부른다. 하이퍼는 직역하지 않는 이유는 여기서 hyper는 이동의 의미를 갖기 때문일 듯하다. 다시 말해 www상에서 정보를 주고받는 약속을 뜻한다. 유럽 입자 물리 연구소의 팀 버너스 리가 속한 팀에서 HTML과 텍스트 기반 웹 브라우저 기술을 발명했고, 여기에 http 개념이 등장한다. 버너스 리는 1989년 "월드와이드웹" 프로젝트를 제안했고 이게 현재 우리가 아는 www다. 최초에는 서버로부터 페이지를 요청하는 GET 메서드 하나만 존재했고, 무조건 응답은 HTML 문서였다.

1991년 문서화된 최초 http가 탄생했다. 버전은 0.9. 이후 http는 확장된 조작성, 협상, 메타 정보와 메서드 추가 등 효율적으로 발전하며 1996년 HTTP/1.0이 탄생했다. http가 첫 국제 표준이 되는 순간이다. 이후 1.1 버전으로 업데이트되며 브라우저를 개발하던 개발자들에게 빠르게 채택되었다. 당시 유명한 브라우저 넷스케이프 2.0, 인터넷 익스플로러 2.0, 모자이크 2.7 등 모드 http 1.1을 채택했다. 1996년 3월엔 브라우저의 40%, 동년 6월엔 65%가 HTTP/1.1과 호환되었다고 알려져 있다. 2007년 HTTP/1.1의 사양을 개정하고 명확하게 서술하고자 HTTPbis 워킹 그룹이 창설되었고 현재까지 지속되고 있다.

http는 포트번호로 보통 80을 사용하고 있다.

 

HTTPs

https는 Hyper Text Transfer Protocol over Secure Socket Layer의 뜻을 가지고 있다. 쉽게 말해 http의 보안이 강화된 버전을 뜻한다. 일반 텍스트를 주고 받는 대신에, SSL이나 TLS 프로토콜로 세션 데이터를 암호화한다. 보호 수준은 웹브라우저의 구현 정확도와 서버 소프트웨어, 지원하는 알고리즘에 달려 있다. 

HTTPs URI는 http대신 https를 사용한다. 이는 보호 명목을 사용자에게 명확하게 알려기 위한 방법 중 하나다. 브라우저마다 다르지만, 자물쇠, 방패 등 여러 방법으로 https로 작동되고 있음을 알리고 있다. 반대로 http라면 경고 표시가 뜨기도 한다. 

HTTPS는 넷스케이프 브라우저로 유명한 넷스케이프 커뮤니케이션즈에서 1994년 처음 개발했다. 브러우저 개발사 답게 자사 브라우저의 보안을 위해 만들었으며, SSL 프로토콜과 함께 사용된 게 시초다. 2000년 5월 SSL이 TLS로 발전하며, HTTPS는 RFC 2818에 규정되었다.

HTTPS의 포트 번호는 443이다.

RFC는 비평을 기다리는 문서라는 의미며, 네트워크 공학 등에서 인터넷 기술의 새로운 연구, 혁신, 기법 등을 아우르는 메모를 뜻하기도한다. 인터넷 협회에서 기술자 혹은 컴퓨터 과학자들은 RFC 메모 형태로 자신의 생각을 출판한다. 인터넷표준화기구 IETF는 일부 RFC를 인터넷 표준으로 받아들이기도 한다.
RFC 편집자는 매 RFC 문서마다 일련 번호를 부여한다. 일련번호가 부여되고 출판하면 RFC는 절데 폐지되거나 수정되지 않는다. 수정이 필요하다면 수정된 문서를 다른 RFC 문서로 다시 출판해야 한다. 이로 인해 몇몇 RFC는 이전 버전의 개선 문서이거나, 이전 버전 문서를 무효화하기도 한다. 이는 곧 인터넷 표준의 역사를 나타내게 된다.

SSL와 TLS

https가 HTTP over SSL이기에, HTTPS와 SSL을 같은 의미로 이해하기도 한다. 이는 맞는 말이면서 틀리다. 인터넷과 웹은 다르듯 HTTPS과 SSL도 다르다. 엄밀히 따지자면 웹은 인터넷 위에서 돌아가는 서비스듯, HTTPS는 SSL 프로토콜에서 돌아가는 프로토콜인 셈이다.

https에서도 설명했듯 SSL은 넷스케이프에서 처음 개발한 보안 프로토콜이다. 개인정보 보호, 인증, 데이터 무결성을 보장하고자 만들었다. SSL은 TLS로 바뀌게 되는 데, 이는 관리 주체가 넷스케이프에서 인터넷표준화기구인 IETF로 옮겨갔기 때문이다. TLS 1.0은 SSL 3.0을 계승함을 봐도 두 가지는 사실상 같은 기술이라 봐도 무방하다. 실제로 TLS라는 말보다 SSL이란 말이 여전히 많이 쓰이고 있다.

http로 전송한 패킷을 들여다보면 password가 그대로 노출되고 있음을 알 수 있다.

 

※ 잘못된 내용이 있을 경우 댓글로 알려주세요. 배우고 익히고 수정하겠습니다:)

'FE > Web' 카테고리의 다른 글

SPA & MPA  (0) 2023.01.04
SEO  (0) 2022.12.11
Domain, DNS, Hosting  (0) 2022.10.27
token, XSS, CSRF  (1) 2022.10.25
Browser’s Rendering Process  (0) 2022.10.24