HTTP 란?
웹에서 데이터를 주고받는 규칙 (프로토콜)
모든 데이터가 이 규칙에 맞춰 정리되어, 정보를 교환할 수 있다.
( 규칙이 없다면, 정보를 해석할 수 없다 )
HTTP을 사용한 통신 과정
1. 사용자(Client)가 서비스제공자(Server)에게 데이터를 요청 메시지(HTTP 메시지)를 보낸다
2. 서버가 클라이언트가 요청한 HTTP 메시지를 받아, 그에 맞는 정보를 HTTP 메시지로 응답해준다.
HTTP 요청 메시지 형식
GET https://www.naver.com HTTP/1.1
GET : HTTP 메서드
https://www.naver.com : 주소
HTTP/1.1 : HTTP 버전
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...
# 이 줄부터 아래는 헤더라고 부르고,데이터 요청에 관한 정보를 담고 있다
Upgrade-Insecure-Requests: 1
HTTP 요청의 종류
HTTP 응답 메시지 형식
HTTP/1.1 200 OK
# HTTP버전 / 상태코드 / 상태메시지
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 35653
Content-Type: text/html;
# 헤더 : 응답에 관한 정보를 담고있다.
<!DOCTYPE html><html lang="ko" data-reactroot="">
<head><title...
# 본문 : 사용자가 요청한 데이터를 HTML에 담아 브라우저에게 전달한다
HTTPS 란?
HTTP 프로토콜의 보안 버전
SSL 인증서(Secure Socket Layer)을 이용한다.
HTTPS의 필요성
HTTP는 통신할때 데이터를 암호화하지 않고 날것 그대로 전송한다.
HTTPS는 기관에서 발급한 인증서를 데이터와 함께 암호화 하므로
해커가 정보를 마음대로 가져가거나, 조작할 위험이 있다.
SSL이란? ( feat TLS )
암호화 통신에 사용하는 열쇠(Key)를 공유할 수 있도록 하는 기술
(Secure Socket Layer)
인증기관(CA)가 Key를 인증서에 담아 발급하고, 관리한다.
- 인증기관은 보안상 매우 중요한 역할을 하므로, 전 세계적으로 신뢰받는 기관이 운영한다. ( AWS )
- 보안사고가 나면 신뢰를 잃기도 한다.
SSL을 표준화하여, TLS를 만들었다.
HTTPS의 암호화 통신 과정
[ 사전 작업 ]
1. 웹 서버에서 암호화된 HTTP 메시지를, 해독할 수 있는 Key를 2개 만든다.
2. Key 중 하나는 서버에 보관하고, 다른 하나는 인증기관에게 준다.
3. 인증기관은 이 Key를 보안작업하여 인증서를 만든다.
[ 클라이언트 요청 과정 ] - Request
1. 브라우저가가 서버에 보낼 HTTP 메시지 요청을 만든다.
2. 브라우저가 인증기관에게, 해당 서버의 인증서를 요청한다.
3. 인증서가 있으면, 이를 브라우저에게 응답한다.
4. 브라우저가 인증서 내부의 Key로 HTTP 메시지를 암호화한다.
5. 암호화된 메시지를 서버에게 보낸다.
[ 서버 응답 과정 ] - Response
1. 서버가 암호화된 메시지를 받는다.
2. 서버에 보관하고 있던 Key로 암호화된 메시지를 해독하고, 요청을 확인한다.
3. 사용자의 요청에 따른 응답 HTTP 메시지를 만들고, 다시 Key로 암호화한다.
4. 암호화된 메시지를 브라우저에게 보낸다.
[ 응답 확인 과정 ]
브라우저는 응답 HTTP 메시지를 인증서 내부의 Key로 열고, 응답을 확인한다.
반응형