728x90
HTTP(HyperText Transfer Protocol)
정의
- HTTP는 서버/클라이언트 모델에 따라 HTML, 이미지, 영상 등 다양한 리소스를 주고 받기 위한 프로토콜이다.
- 기본적으로 TCP 포트 80번을 사용한다.
작동 방식
- 클라이언트가 서버에 요청(Request)를 보내고,
- 서버가 응답(Response)을 보내는 방식으로 작동한다.
특징
- 평문 통신 : 데이터가 암호화되지 않고 전송된다. (보안 취약성)
즉, 중간에 누군가 통신 내용을 엿보거나 조작할 수 있다. - 빠르고 가볍지만, 보안에 취약하다. (무결성 문제)
- 서버의 신원을 확인하는 기능이 없어, 제 3자가 서버로 위장하여 클라이언트와 통신할 수 있다.
- 상태를 가지고 있지 않은 Stateless 프로토콜이다.
HTTPS(HyperText Transfer Protocol Secure)
정의
- HTTP에 SSL/TLS와 같은 보안 프로토콜이 추가된 프로토콜이다.
- 데이터를 주고 받을 때 암호화를 적용하여 보안을 강화한 버젼이다.
- TCP 포트 443번을 사용한다.
작동 방식
- SSL과 TLS 방식이 있지만, 최근에는 SSL의 보안 상의 문제로 인해 TLS만 사용한다. 즉, HTTPS를 사용하기 위해서는 TLS 핸드쉐이크 과정을 거쳐야 한다.
- 클라이언트가 서버에 연결을 요청(HTTPS 요청)
- 서버는 인증서를 제공
- 클라이언트가 인증서를 검사하고, 서버와 비밀 키를 교환한다.(여기서 대칭키 생성)
- 그 후 실제 데이터는 대칭키로 암호화되어 전송된다.
2025.05.04 - [네트워크] - [네트워크] TLS Handshake
특징
- 암호화 : 제 3자가 내용을 볼 수 없다.
- 무결성 : 데이터가 중간에 변조되지 않았는지 확인 가능하다.
- 인증 : 사용자가 신뢰 가능한 서버와 통신 중인지 확인 가능하다.
HTTPS를 사용하는 이유
- 민감한 데이터를 주고받기 위해 반드시 필요하다.
- SEO(검색 엔진 최적화)에 더 유리하다.
728x90
'네트워크' 카테고리의 다른 글
[네트워크] TLS Handshake (0) | 2025.05.04 |
---|