HTTP (HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간에 데이터를 주고받기 위해 사용하는 프로토콜로, HTML, 이미지, 동영상 등 웹 페이지 요소들을 전송합니다.
1. 비연결성(Connectionless)
HTTP는 요청과 응답이 끝나면 연결을 종료합니다. 사용자가 웹 페이지를 요청하면 브라우저와 서버 간에 연결이 생성되고, 요청과 응답이 완료되면 연결이 끊어집니다. 이후 추가적인 요청이 있을 때 다시 연결을 생성합니다. 이를 통해 서버의 부하를 줄이고 많은 사용자를 처리할 수 있지만, 다중 요청에서는 비효율적일 수 있습니다.
2. 무상태성(Stateless)
HTTP는 이전 요청과 다음 요청 간의 상태 정보를 저장하지 않습니다. 즉, 각 요청은 독립적이며, 이전에 어떤 요청이 있었는지 알지 못합니다. 이로 인해 각 요청마다 필요한 정보를 함께 전송해야 하며, 이를 보완하기 위해 쿠키와 세션 등의 기술이 추가로 사용됩니다.
3. 텍스트 기반
HTTP는 요청(Request)과 응답(Response)이 텍스트 형태로 전송됩니다. 사용자는 URL로 웹 자원을 요청하고, 서버는 요청에 따라 HTML, JSON 등의 데이터를 전송합니다.
HTTP에는 다양한 메서드가 있어 요청의 목적을 구체적으로 나타낼 수 있습니다. 주요 메서드는 다음과 같습니다.
HTTP 응답에는 상태 코드가 포함되어, 요청이 성공했는지 실패했는지 등을 알려줍니다.
200 OK
)301 Moved Permanently
)404 Not Found
)500 Internal Server Error
)HTTPS는 HTTP에 보안 계층(SSL/TLS)을 추가하여 데이터를 암호화하고, 데이터의 무결성과 인증을 제공합니다. 주로 로그인 정보, 결제 정보 등 민감한 데이터를 보호하기 위해 사용됩니다.
1. 암호화(Encryption)
HTTPS는 데이터를 SSL/TLS 암호화하여 전송합니다. 암호화를 통해 중간에 제3자가 데이터를 볼 수 없게 하여 정보 유출을 방지합니다.
2. 데이터 무결성(Integrity)
전송 중 데이터가 변조되지 않았음을 보장합니다. 데이터가 변조되거나 손상된 경우 브라우저가 이를 감지하여 사용자에게 경고합니다.
3. 인증(Authentication)
HTTPS는 서버가 신뢰할 수 있는 서버인지 확인합니다. 서버는 신뢰된 기관(CA, Certificate Authority)에서 발급된 SSL 인증서를 통해 자신의 신원을 증명합니다. 브라우저는 이 인증서를 확인하고, 신뢰할 수 있는 서버와 연결합니다.
HTTPS를 사용하려면 SSL/TLS 인증서가 필요합니다. SSL/TLS 인증서는 신뢰된 기관(CA, Certificate Authority)에서 발급받으며, 유료 또는 무료로 제공됩니다. 브라우저는 인증서를 통해 웹 서버의 신원을 확인하고, 안전한 통신을 보장합니다.
특징 | HTTP | HTTPS |
---|---|---|
보안 수준 | 낮음 (데이터가 평문으로 전송) | 높음 (SSL/TLS 암호화로 데이터 보호) |
데이터 암호화 | 없음 | 있음 (데이터를 SSL/TLS로 암호화) |
데이터 무결성 | 없음 (데이터 변조 가능성 존재) | 있음 (데이터 무결성 보장) |
서버 인증 | 없음 (서버 신뢰성 검증 불가) | 있음 (CA 인증서를 통해 서버의 신뢰성 보장) |
주 사용처 | 보안이 중요하지 않은 페이지 | 로그인, 결제 페이지 등 민감 정보가 있는 페이지 |