HTTP는 웹에서 클라이언트와 서버 간 통신을 위한 통신규약입니다.
하지만 HTTP는 암호화되지 않은 평문 데이터를 전송하기 때문에 제3자가 정보를 조회할 수 있다는 위험이 있습니다. (스니핑)
HTTPS는 HTTP에 데이터를 암호화하여 전송할 수 있도록 추가된 프로토콜입니다.
HTTPS 적용 방법
1. (서버) 인증된 기관(CA) 에게 인증서를 발급 요청
2. (CA) CA이름, 서버의 공개키, 서버의 정보 활용 > 인증서 생성 > CA 개인키로 암호화하여 서버로 전송(신뢰성 확보)
3. (서버) 인증서 발급받아 HTTPS 적용
HTTPS 동작 원리 : SSL/TLS 핸드 쉐이크
1. (클라이언트 > 서버) SSL프로토콜 버전 / 암호화 알고리즘 목록 / 무작위 값 전달
2. (서버 > 클라이언트) SSL프로토콜 버전 / 선택한 암호화 알고리즘 / 무작위 값 + 본인 공개키 + CA인증서 전달
3. (클라이언트) 서버의 인증서를 CA의 공개키로 복호화하여 검증
4. (클라이언트 > 서버) 서로 생성한 무작위 값을 조합하여 Pre Master Secret값 생성하여 서버 공개키로 암호화
5. (서버) 암호화된 데이터를 개인 키로 복호화 > Pre Master Secret을 Master Secret으로 변경하고 이를 사용해 세션 키 생성
6. 이후는 클라이언트와 서버 모두 세션키를 활용하여 대칭키 암호화 방식으로 데이터 송수신
✨ HTTP 통신 특징
1. 비연결성
2. 무상태 : 요청과 응답에 대해 기억하지 않음. 기억하려면? 쿠키나 세션 사용
3. 요청-응답 방식
[데이터 통신] HTTP, HTTPS(SSL/TLS) 통신 이해하기 : 클라이언트-서버 통신 과정 — Contributor9
[데이터 통신] HTTP, HTTPS(SSL/TLS) 통신 이해하기 : 클라이언트-서버 통신 과정
해당 글에서는 HTTP, HTTPS 통신에 대해 이해를 돕기 위해 작성한 글입니다. 1) HTTP(HyperText Transfer Protocol) 통신💡HTTP(HyperText Transfer Protocol) 통신- 웹 브라우저와 서버 간에 데이터(HTML, Image, CSS, JS, JSON
adjh54.tistory.com
✨ SSL프로토콜과 TLS
SSL : 클라이언트와 웹 서버 간의 통신을 암호화하여 데이터가 노출되는 것을 막기 위한 보안 프로토콜
'cs(with 매일메일)' 카테고리의 다른 글
| [251031금] DB Replication에 대해서 설명해주세요 (0) | 2025.11.03 |
|---|---|
| [251030목] Record를 DTO로 사용하는 이유가 뭔가요? (0) | 2025.10.30 |
| [251028화] WAS와 웹서버의 차이점은 무엇인가요? (0) | 2025.10.29 |
| [251027월] 자료구조 스택에 대해서 설명해주세요 (0) | 2025.10.27 |
| [251024금] 서버 사이드 렌더링과 클라이언트 사이드 렌더링의 차이점은 무엇인가요? (0) | 2025.10.24 |