HTTP
- 특징
- HTTP는 텍스트 기반의 통신 프로토콜로, 주로 클라이언트와 서버 간에 HTML 문서, 이미지, 비디오 등 다양한 데이터 파일을 주고받는 데 사용된다.
- 데이터가 암호화되지 않은 상태로 전송되기 때문에 중간에 제 3자가 데이터를 가로챌 수 있다. 따라서 보안이 필요한 데이터를 HTTP로 전송하는 것은 위험하다.
- 동작 방식
- 클라이언트 요청
- 클라이언트가 서버로 요청을 보낸다.
- 서버 응답
- 서버가 요청을 받아 HTTP 헤더와 함께 데이터를 클라이언트로 보낸다.
- HTTP는 상태를 유지하지 않기 때문에(stateless) 요청과 응답이 독립적이다.
- 이는 특정 요청이 완료된 후, 서버는 그 요청과 관련된 정보를 보존하지 않는다는 뜻이다.
HTTPS
- 특징
- HTTPS는 HTTP에 SSL(TLS)를 추가하여 데이터가 암호화된 상태로 전송되기 때문에 제 3자가 중간에 데이터를 탈취하더라도 내용을 해독하기 어렵다.
- HTTPS는 보안성이 강화되어 인증, 데이터 무결성, 암호화를 제공한다. 주로 로그인 페이지, 결제 페이지 등 보안이 중요한 페이지에 사용된다.
- 동작 방식
- SSL/TLS 핸드셰이크
- HTTPS는 클라이언트와 서버 간에 SSL/TLS 연결을 설정하여 통신이 암호화된 상태로 이루어지도록 한다. 이 과정은 핸드셰이크라고 불리며, 클라이언트와 서버가 암호화 키를 교환하고 인증서를 확인하는 단계가 포함된다.
- 데이터 전송
- 핸드셰이크가 완료되면 클라이언트와 서버는 대칭 암호화를 통해 데이터를 주고받는다. 모든 데이터는 암호화되어 전송되므로 외부에서 데이터를 탈취해도 내용을 알기 어렵다.
- 세션 종료
- 요청이 완료되면 HTTPS 세션이 종료되고 암호화된 연결이 닫힌다.