HTTP | HTTPS | |
---|---|---|
정의 | Hypertext Transfer Protocol | Hypertext Transfer Protocol Secure |
기본 프로토콜 | HTTP/1과 HTTP/2는 TCP/IP를 사용 HTTP/3은 QUIC 프로토콜을 사용 | SSL/TLS와 함께 HTTP/2 사용 (HTTP 요청 및 응답을 추가로 암호화하기 위해서) |
포트 | 기본 포트 80 | 기본 포트 443 |
용도 | 텍스트 기반 웹 사이트 | 모든 최신 웹 사이트 |
보안 | 추가 보안 기능 없음 | 퍼블릭 키 암호화에 SSL 인증서 사용 |
장점 | 인터넷을 통한 통신 | 웹 사이트에 대한 권위, 신뢰성 및 검색 엔진 순위 개선 |
사용자가 웹사이트를 방문하면, 사용자 브라우저는 웹서버에 HTTP 요청을 한다. 그러면 웹서버는 HTTP응답으로 응답을 한다. HTTP로는 사용자 브라우저와 웹서버는 데이터를 일반 텍스트로 교환한다.
HTTPS는 암호화된 데이터를 전송하므로 HTTPS는 더 안전한 버전이라고 할 수 있다.(HTTPS의 'S'는 Secure)
HTTP는 네트워크 통신 모델에서 애플리케이션 계층 프로토콜이다.
HTTP는 암호화되지 않은 데이터를 전송한다. 따라서 브라우저에서 전송된 정보를 제 3자가 가로챌 위험이 있다.
만약 웹사이트의 데이터 일부를 보려고 한다면, HTTP GET요청을 전송하고, 일부 정보를 전송하려고 하면 HTTP PUT 요청을 한다.
서버는 숫자코드 등 여러가지 방식으로 HTTP 응답을 전송한다.
이러한 응답은 보통 사용자에게 보이지는 않는다.
200 - OK(정상)
400 - Bad request(잘못된 요청)
404 - Resource not found(리소스를 찾을 수 없음)
HTTP는 암호화되지 않은 데이터를 전송하므로 위험성이 있기 때문에,
HTTPS는 HTTP 요청 및 응답을 SSL, TLS 기술과 결합하여 암호화된 데이터를 교환한다.
HTTP 메세지는 암호화되지 않은 일반 텍스트이기 때문에 권한이 없는 사용자가 쉽게 읽을 수 있다. 하지만 HTTPS는 모든 데이터가 암호화 되어 있기 때문에 제 3자가 네트워크를 통해 정보를 가로챌 수 없다. 신용카드 정보나 개인정보 같은 정보를 보호하기 위해서는 HTTPS를 이용하는 것이 좋다.
GOOGLE은 HTTPS의 중요성을 밝혔다. 따라서 HTTPS을 기반으로 하는 알고리즘을 출시했고 보안이 없는 HTTP는 검색에서 높은 순위를 얻기 힘들다.
GOOGLE은 HTTPS의 가중치를 더 늘릴 예정이며, 모든 사용자의 정보를 더 안전하게 보호하기 위해 모든 웹사이트 소유자가 HTTP에서 HTTPS로 전환하기로 권장하고 있다.
HTTPS 웹 애플리케이션은 HTTP 애플리케이션보다 로드 속도가 더 빠르다. 마찬가지로, HTTPS는 참조 링크도 더 잘 추적한다.
최초의 HTTP 버전이 HTTP/1.1이다. HTTP/2와 HTTP/3은 프로토콜 자체를 업그레이드한 버전이다.
HTTP/2는 텍스트 형식 대신, 바이너리[3]로 데이터를 교환한다. 또한 서버가 새 HTTP 요청을 기다리는 대신, 클라이언트 캐시에 응답을 사전에 전송할 수 있다.
HTTP/3는 최근에 나온 버전이고, HTTP/3의 목표는 실시간 스트리밍 및 최신 데이터 요구를 효율적으로 응답하는 것이다.
HTTPS는 SSL/TLS와 함께 HTTP/2를 사용한다. HTTP/3이 더욱 발전하면 브라우저 및 서버 기술도 결국 HTTPS에 통합될 것이다.
공개키(비대칭키)
공개키 방식은 두개의 키를 갖게 되는데 A키를 사용해 암호화를 하면 B키로 복호화를 할수 있고, B키로 암호화를 하면 A키로 복호화를 할 수 있는 방식이다.
이 두개의 키 중 하나를 비공개키(private key, 개인키, 비밀키라고도 부른다)로 하여자신만이 가지고 있고, 나머지를 공개키로 지정하여 대중에게 공개한다. 클라이언트는 이 공개키를 사용하여 비밀번호화 같은 정보를 암호화 하여 서버에 보내면 서버는 자신이 보관하고 있던 비공개키를 사용하여, 암호화된 내용을 복호화 할 수 있다.
[1][2]퍼블릭 키, 비밀키
공개 키(퍼블릭 키) 암호 방식은 열쇠로 잠겨 있고 좁은 투입구가 있는 편지함에 비유할 수 있다. 이런 편지함은 위치(공개 키)만 알면 투입구를 통해 누구나 편지를 넣을 수 있지만 열쇠(개인 키)를 가진 사람만이 편지함을 열어 내용을 확인할 수 있다.
공개키 암호화 방식은 개인키(프라이빗키) 암호 방식보다 복잡한 경향이 있기 때문에 효율성을 위해서 개인키(혹은 대칭키)와 함께 사용한다.
키를 만든 사람 : 매우 풀기 어려운 수학문제(공개 키)를 일반에 공개한다. 출제자만 알고 있는 특정 정보(개인 키)는 숨긴다.
만약 두 개의 큰 소수를 곱한 숫자를 문제가 있다면, 두 개의 큰 소수는 개인 키가 되고 두 소수를 곱한 값은 공개 키가 된다. 따라서 이 공개 키는 일반에 공개하고 개인 키는 숨긴다.
[3]바이너리
0과 1, 두 숫자로만 이루어진 이진법을 의미한다.
1) https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
2) https://www.ascentkorea.com/difference-between-http-and-https/