HTTP란?
- 웹 상에서 클라이언트와 서버가 자원을 주고받기 위해 사용하는 통신 규약입니다.
- HTTP는 HyperText Transfer Protocol의 약자로, 하이퍼텍스트 기반의 데이터를 전송합니다.
- OSI 7 계층 중 애플리케이션 계층에 속하며, TCP/IP 위에서 동작합니다.
- 비연결성(Connectionless) 기반의 프로토콜로, **요청(Request)**과 **응답(Response)**을 통해 통신합니다.
HTTP 작동 방식
HTTP는 요청/응답 구조로 동작합니다.
클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 보내고 즉시 연결을 종료합니다.
이처럼 매 요청은 독립적으로 이루어지며, 이전의 상태를 유지하지 않습니다.
HTTP의 단점
- 비연결성 (Connectionless)
- 요청과 응답이 완료되면 서버는 연결을 끊습니다.
- 이전 요청 상태를 기억하지 않기 때문에, 매번 인증 등의 부가 정보가 필요합니다.
- 무상태성 (Stateless)
- 서버는 각 요청 간의 상태를 저장하지 않습니다.
- 이를 보완하기 위해 쿠키, 세션, 토큰 등의 기술이 사용됩니다.
- 보안 취약성
- HTTP는 데이터를 암호화하지 않기 때문에, 중간자 공격(MITM) 등 보안 위협에 노출될 수 있습니다.
- 이러한 문제를 해결하기 위해 HTTPS가 등장했습니다.
- 속도 지연
- 매 요청마다 TCP 연결을 새로 생성/종료하기 때문에, 다수의 요청 시 성능 저하가 발생할 수 있습니다.
- HTTP/1.1에서는 Keep-Alive 연결을 통해 이를 개선했고, HTTP/2부터는 동시 요청 처리 기능이 추가되었습니다.
HTTPS란?
HyperText Transfer Protocol Secure
- HTTP의 보안성 문제를 보완하기 위해 만들어진 프로토콜입니다.
- SSL/TLS 암호화 기술을 통해 데이터를 보호하며, 신원 인증 및 데이터 무결성까지 제공합니다.
공개키(PKI) 암호화란?
- 공개키와 비밀키라는 서로 다른 두 키를 사용하는 암호화 방식입니다.
- 공개키는 누구에게나 공개되며, 비밀키는 오직 본인만 가지고 있습니다.
- 예시:
- A가 B의 공개키로 데이터를 암호화하면
- 오직 B만이 자신의 비밀키로 이를 복호화할 수 있습니다.
- 👉 즉, 공개키로 암호화된 데이터는 대응되는 비밀키 없이는 절대 해독할 수 없습니다.
SSL(Secure Sockets Layer)이란?
- 공개키 기반 암호화(PKI) 방식을 사용하며,
- **CA(Certificate Authority)**라는 공인된 제3 자가 발급한 SSL 인증서를 통해 웹 서버의 신원을 검증합니다.
- 현재는 보안이 강화된 **TLS(Transport Layer Security)**가 대부분 사용됩니다.
TLS(Transport Layer Security)란?
- SSL의 발전된 버전으로, 현재 HTTPS 통신의 표준입니다.
- 클라이언트와 서버 간 데이터를 암호화, 무결성 검증, 상호 인증하여 안전한 통신을 보장합니다.
TLS의 3대 특징
- 암호화(Encryption)
→ 데이터가 전송 중에 외부에 노출되지 않도록 암호화합니다. - 무결성(Integrity)
→ 전송된 데이터가 중간에 변경되지 않았음을 보장합니다. - 인증(Authentication)
→ 서버(또는 클라이언트)의 신원을 인증하여 신뢰할 수 있는 통신이 가능하도록 합니다.
반응형
'CS > 네트워크' 카테고리의 다른 글
[네트워크]TCP/IP란? (0) | 2025.06.14 |
---|---|
[네트워크]TCP/IP 와 OSI7 계층 (0) | 2025.06.14 |
REST API란 (0) | 2025.05.03 |
[네트워크] 쿠키와 세션 (0) | 2025.03.23 |