HTTP, HTTPS
HTTP
HTTP는 TCP/IP를 이용하는 응용 프로토콜로서 인터넷에서 데이터를 주고받는 데 사용되는 통신 규약이다. 클라이언트와 서버 사이에서 요청(Request)과 응답(Response)를 주고받아 클라이언트가 서버로부터 정보를 받아오는 방식으로 동작한다. 그러나 기본적으로 평문으로 통신하기 때문에 보안에 취약하다. 이를 해결하기 위한 프로토콜로 HTTPS가 있다. HTTPS는 SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화하여 보안적으로 안전한 통신을 제공한다.
또한 HTTP는 Stateless한 특징을 가지고 있어서, 이전 요청과 현재 요청이 서로 독립적인 관계를 가지며, 서버는 클라이언트의 상태 정보를 유지하지 않는다. 이를 해결하기 위해 쿠키와 세션 개념이 도입되었다. 쿠키는 클라이언트 측에 저장되는 작은 데이터 파일로, 서버로부터 전송된 HTTP 응답에 포함되어 클라이언트에 저장된다. 이후 클라이언트가 동일한 서버에 요청을 보낼 때마다 쿠키를 함께 전송하여 서버가 클라이언트를 식별하고 상태 정보를 유지할 수 있다. 세션은 클라이언트와 서버 사이에서 유지되는 상태 정보를 의미하며, 클라이언트가 서버에 최초 요청을 보내면, 서버는 세션 ID를 발급하고, 이를 쿠키를 이용해 클라이언트에게 전송한다. 이후 클라이언트가 다시 요청을 보낼 때마다, 쿠키에 저장된 세션 ID를 서버에 전송하여 서버가 클라이언트를 식별하고 상태 정보를 유지할 수 있다.
HTTP와 HTTPS는 모두 인터넷에서 데이터를 주고받는 데 사용되는 프로토콜이지만, HTTPS는 보안적인 측면에서 더 안전하며, 쿠키와 세션 개념을 이해하면 HTTP와 HTTPS의 차이를 더욱 명확하게 이해할 수 있다.
SSL
SSL은 Secure Socket Layer의 약자로, 데이터 암호화를 위한 프로토콜이다. HTTPS에서 SSL을 사용하여 데이터를 암호화하고 안전하게 전송한다. SSL은 공개키 암호화 방식을 사용하여, 데이터를 안전하게 전송하는 데 사용된다. SSL을 사용하면 중간자 공격(MITM)과 같은 공격으로부터 데이터를 보호할 수 있다.
TSL
TSL은 Transport Layer Security의 약자로, SSL의 후속 버전이다. SSL과 마찬가지로 데이터를 암호화하여 안전하게 전송하는 데 사용되며, HTTPS에서 TSL을 사용하여 데이터를 보호한다.