HTTP 와 HTTPS 의 차이를 묻는 질문 빈도는 면접 외에도 정말 자주 있는것 같습니다.
그러면 HTTP 의 기초부터 HTTPS 까지 폭 넓게 알아가보도록 하겠습니다.
HTTP란?
HTTP(Hypertext Transfer Protocol) 은 인터넷을 통해 정보를 전송하는데 사용되는 프로토콜입니다.
또한 HTTP는 상태가 없는 프로토콜 입니다. 클라이언트와 서버 간의 각 요청이 서로 독립적으로 처리되며, 이전 요청과 상태에 대한 정보를 유지하지 않는다는 것을 의미합니다.
저희는 이것을 무상태성(Stateless) 이라고 표현합니다.
- HTTP 의 특징
- 데이터를 암호화하지 않고 평문으로 전송하여 보안성 보장이 안됨 (데이터 도청 및 노출 위험이 있음)
- 기본적으로 80포트를 사용
- TCP/IP 프로토콜 스택 위에서 동작, TCP 의 여러 특성(연결 지향성, 신뢰성, 흐름 제어 등)을 사용
- 요청-응답 구조 : 클라이언트가 서버에 요청을 보내고, 서버는 요청 처리을 처리 후 응답하는 구조
- 메서드 사용 : GET, POST, PUT, DELETE 등
이러한 HTTP 의 특징은 HTTPS 에서도 동일하게 사용됩니다.
HTTPS란?
HTTPS(Hypertext Transfer Protocol Secure) 도 인터넷을 통해 정보를 전송하는 프로토콜입니다.
HTTP 와의 차이점은 이름에서 알 수 있듯이 '보안'과 '암호화' 입니다.
- HTTPS의 특징
- SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화. 데이터를 안전하게 전송하여 도청이나 데이터 변조를 방지
- 기본적으로 443 포트를 사용
- SSL, TLS 프로토콜을 사용하기 위해 서버의 신원을 인정하는 '인증서'를 요구함. 이를 통해 클라이언트에 서버가 신뢰할 수 있는지 여부를 확인할 수 있음
- SEO(Search Engine Optimization) : HTTPS를 사용하는 웹사이트는 HTTP를 사용하는 웹사이트보다 더 안전하기 때문에, 검색 엔진에서 더 높은 순위를 받을 수 있음. 즉, 검색 엔진 최적화의 필수 요소
- 쿠키와 세션을 사용하여 데이터가 안전하게 전송되므로 중간자 공격으로부터 보호됨
그럼 결론은?
HTTPS는 HTTP 의 보안 강화 버전으로 생각하시면 됩니다. 전송되는 데이터의 기밀성과 무결성을 보호하는데 사용되며 보안성이 HTTP보다 높습니다.
현재 클라이언트에게 제공 중인 서비스 중 HTTP 를 사용하는건 거의 본적이 없습니다. 만약 HTTP 만 사용하면 chrome, safari 같은 브라우저에서 경고가 뜨거나 접근할 수 없습니다. 그리고 앱스토어 심사에서 불합격할 수 있는 요소입니다.
물론 MSA 구축 시 서버 내부 통신은 http 만 사용할 수 있습니다.
'Programming > 기타' 카테고리의 다른 글
[사용자 인증] 사용자 인증에서 쿠키란? (0) | 2024.04.09 |
---|---|
REST API 와 RESTful API 차이는 사실 별거 없다. (0) | 2024.04.03 |
[mac os] Homebrew 설치 (0) | 2024.04.03 |
[mac os] git 설치 (0) | 2024.04.03 |
[mac os] brew 설치 중 Warning: /opt/homebrew/bin is not in your PATH. 오류 발생 (0) | 2024.04.02 |