HTTP(HyperText Transfer Protocol)는 웹에서 정보를 주고 받기 위한 기본 프로토콜입니다.
HTTP는 클라이언트가 요청을 보내고, 서버가 그에 응답하는 단순한 구조로 동작합니다. 우리가 웹사이트를 방문할 때마다 이러한 요청-응답 사이클이 발생합니다.
HTTP는 각 요청을 독립적으로 처리하며, 이전 요청과의 연관성을 유지하지 않습니다. 서버는 이전 요청을 기억하지 않기 때문에, 상태 관리를 위해서는 쿠키, 세션 등의 추가 메커니즘이 필요합니다.
HTTP는 기본적으로 요청-응답 후 연결을 바로 종료합니다. 이러한 특성은 서버 자원을 효율적으로 사용할 수 있게 해주지만, 매 요청마다 새로운 연결을 수립해야 하는 단점도 있습니다.
HTTP 메시지는 사람이 읽을 수 있는 텍스트 형식으로 구성되어 있어, 디버깅이 상대적으로 쉽습니다.
HTTP 헤더를 통해 다양한 기능을 추가할 수 있어 유연하게 확장이 가능합니다.
HTTP 메서드는 클라이언트가 서버에 어떤 작업을 요청하는지 나타냅니다. 각 메서드는 특정 목적을 위해 설계되었습니다.
HTTP 헤더는 요청이나 응답에 대한 추가 정보를 제공하는 필드입니다. 헤더를 통해 데이터 형식, 인증 정보, 캐싱 정책 등 다양한 메타데이터를 전달할 수 있습니다.
HTTP는 데이터를 평문으로 전송하기 떄문에 중간에서 정보가 노출되거나 변조될 위험이 있습닏. 이러한 보안 취약점을 해결하기 위해 HTTPS가 개발되었습니다.
HTTPS(Hypertext Transfer Protocol Secure)는 HTTP에 SSL/TLS 암호화 계층을 추가한 프로토콜입니다. 기본적인 기능은 HTTP와 동일하지만, 데이터가 암호화되어 안전하게 전송됩니다.
HTTPS는 클라이언트와 서버 간에 교환되는 모든 데이터를 암호화합니다. 이는 비밀번호, 신용카드 정보 등 민감한 정보가 중간에서 도청되는 것을 방지합니다.
HTTPS는 전송 중 데이터가 변조되지 않았음을 보장합니다. 누군가 데이터를 수정하려고 시도하면 이를 감지할 수 있습니다.
HTTPS는 디지털 인증서를 통해 사용자가 의도한 웹사이트와 통신하고 있음을 보장합니다. 이는 파싱과 같은 공격을 방지하는 데 도움이 됩니다.
HTTPS 연결은 다음과 같은 단계로 이루어지는 'SSL/TLS 핸드셰이크' 과정을 통해 수립됩니다.