HTTP (Hypertext Transfer Protocol)와 HTTPS (Hypertext Transfer Protocol Secure)는 웹에서 정보를 주고받기 위한 프로토콜로, 클라이언트와 서버 간의 통신을 담당합니다.
주로 웹 브라우저와 웹 서버 간의 통신에 사용되며, 웹페이지의 요청과 응답을 관리합니다.
1. HTTP (Hypertext Transfer Protocol)
- 특징
- 기본적인 텍스트 기반 프로토콜로, 보안 기능이 없습니다.
- 데이터가 평문으로 전송되기 때문에, 도청이나 변조의 위험이 있습니다.
- 사용
- 주로 정보를 안전하게 전송할 필요가 없는 경우에 사용됩니다.
- 예를 들면 뉴스 기사, 블로그 글 등의 정보를 요청하거나 전송할 때 사용될 수 있습니다.
2. HTTPS (Hypertext Transfer Protocol Secure)
- 특징
- 보안이 강화된 HTTP로, 데이터를 암호화하여 전송합니다.
- SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security) 프로토콜을 사용하여 보안성을 확보합니다.
- URL은 "https://"로 시작하며, 포트는 일반적으로 443번을 사용합니다.
- 사용
- 민감한 정보(개인정보, 결제 정보)를 주고받아야 하는 경우에 사용됩니다.
- 로그인 페이지, 결제 페이지 등에서 사용자 데이터를 보호하기 위해 적용됩니다.
동작 과정
1. HTTP
- 클라이언트가 서버에게 요청(Request)을 보냅니다.
- 서버는 해당 요청에 대한 응답(Response)을 생성하여 클라이언트에게 보냅니다.
2.HTTPS
- 클라이언트가 서버에게 요청을 보내면, 서버는 공개키를 클라이언트에게 제공합니다.
- 클라이언트는 서버의 공개키를 사용하여 세션 키(대칭키)를 암호화하여 서버로 전송합니다.
- 이후의 데이터 전송은 세션 키를 사용하여 암호화되어 보안이 유지됩니다.
HTTPS는 암호화를 통해 데이터의 기밀성을 보장하고, 중간자 공격과 같은 보안 위협으로부터 사용자 데이터를 보호하는 데 중요한 역할을 합니다. 현재, 대다수의 웹사이트에서는 보안을 강화하기 위해 HTTPS를 사용하고 있습니다.
'개발 > 신입개발자 기술면접' 카테고리의 다른 글
[신입개발자 기술면접] HTTP GET / POST 방식 (0) | 2024.01.10 |
---|---|
[신입개발자 기술면접] HTTP Response Status (0) | 2024.01.09 |
[신입개발자 기술면접] Well-Known Ports (0) | 2024.01.09 |
[신입개발자 기술면접] TCP와 UDP 차이 (0) | 2024.01.09 |
[신입개발자 기술면접] Process 와 Thread 차이 (0) | 2024.01.08 |