본문 바로가기
인턴(2023.07. ~ 2023.12.)/스크립트 송출 서버 개발

HTTP와 HTTPS

by xladmt 2023. 8. 9.

HTTP(Hyper Text Transfer Protocal)란?

웹 브라우저와 웹 서버 간에 메세지 교환 프로토콜이다. 교환 방식은 복잡한 바이너리 데이터가 아닌 단순 텍스트를 통해 이루어진다. HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용한다. HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. 

 

암호화되지 않은 방법으로 누군가가 주고받는 패킷을 가로채 본다면, 메세지 내용이 그대로 보이게 되어 보안상 문제가 될 수 있다. 이러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다.

 

HTTPS(Hyper Text Transfer Protocal Secure)란?

HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 443번 포트를 사용하며, 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다. HTTP 요청을 SSL 혹은 TLS 알고리즘을 통해, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법이다.

 

*SSL, TLS : 네트워크를 통해 작동하는 서버, 시스템 및 응용 프로그램 간 인증 및 데이터 암호화를 제공하는 암호화 프로토콜

 

 

대칭키 암호화와 비대칭키 암호화

HTTPS는 대칭키 암호와 방식과 비대칭키 암호화 방식 모두 사용하고 있다.

 

[대칭키 암호화]

 - 클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함

 - 키가 노출되면 매우 위험하지만 연산 속도가 빠름

 

[비대칭키 암호화]

 - 1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화하는데 사용

 - 키가 노출되어도 비교적 안전하지만 연산 속도가 느림

 

 

HTTPS의 동작 과정

HTTPS는 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 모두 얻고 있다.

 

HTTPS 연결 과정(Hand-Shaking)에서는 먼저 서버와 클라이언트 간에 세션키를 교환한다. 여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며, 데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어진다.

 

문제는 이 세션키를 클라이언트와 서버가 어떻게 교환할 것이냐 인데, 이 과정에서 비대칭키가 사용된다.

즉, 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용되는 것이고, 이후에 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키가 사용되는 것이다.

 

 

 

 

[참고]

https://mohwaproject.tistory.com/95

 

HTTP, HTTPS 프로토콜이란?

1. HTTP Header Content-Type Field란? Content-Type이란 말 그대로 사용자 요청과 응답 메시지 타입을 뜻하며, 크게 Discrete-Type 과 Composite-Type으로 나뉩니다. 또한, 문법으로 아래와 같은 형태를 가집니다. Conte

mohwaproject.tistory.com

https://velog.io/@usreon/%EC%9D%B8%EC%A6%9D%EB%B3%B4%EC%95%88-HTTPS-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

 

[인증/보안] HTTPS 프로토콜

인터넷 상에서 정보를 주고 받기 위한 프로토콜클라이언트 <-> 서버암호화되지 않은 방법으로 데이터를 전송(악의적 감청, 데이터 변조 가능)보안이 강화된 HTTPHyper Text Transfer Protocol Secure의 약자

velog.io

https://mangkyu.tistory.com/98

 

[Web] HTTP와 HTTPS의 개념 및 차이점

1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위

mangkyu.tistory.com

https://velog.io/@averycode/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-HTTP%EC%99%80-HTTPS-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95

 

[네트워크] HTTP와 HTTPS 동작 과정

HTTP와 HTTPS 동작 과정

velog.io

 

'인턴(2023.07. ~ 2023.12.) > 스크립트 송출 서버 개발' 카테고리의 다른 글

Node.js http 모듈  (0) 2023.08.17
인메모리 컴퓨팅  (0) 2023.08.10
Node.js - Cluster  (0) 2023.08.09
웹 서비스 구조  (0) 2023.08.08
Node.js 란?  (0) 2023.08.08