HTTP와 HTTPS는 대체 뭐가 다를까?

기본적으로 HTTP는 텍스트로 데이터를 주고받는 통신 규약으로, 보안성이 약하다.
반면, HTTPS는 SSL 프로토콜을 이용해 암호화된 데이터를 주고받아 보안성이 강화되어 있다.
이 글에서는 클라이언트-서버 모델, HTTP 메서드, SSL과 TLS 등에 대해 설명하며, HTTP와 HTTPS의 차이점을 명확히 이해할 수 있게 도와준다.

 

 

 

✨시작하며

URL을 확인하면 http 이후 s가 붙어있을 때도, 붙어있지 않을 때도 있다.
HTTP와 HTTPS는 대체 무슨 차이가 있을까?

 

 

 

클라이언트-서버 모델

클라이언트-서버 모델은 웹 통신에서 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보내고, 서버는 요청을 처리한 후 클라이언트에 응답하는 방식으로 작동한다.


예를 들어, 클라이언트가 웹 페이지를 불러오는 것이 HTTP 요청이고, 서버가 해당 웹 페이지의 내용을 반환하는 것이 HTTP 응답이다.
HTTPS에서도 이러한 구조가 동일하게 작동하나, 추가적으로 암호화 과정과 인증서를 통한 인증 과정이 적용된다.

 

 

 

HTTP(Hypertext Transfer Protocol)

인터넷에서 데이터를 주고받기 위한 통신 규약으로, 텍스트만 사용해 데이터를 주고받아 보안성이 약하며 정보 유출 위험이 크다.
사용하는 기본 포트 번호는 80이다.
간략하게는 안전하지 않은 데이터 전송규약이다.
웹 브라우저와 서버 간 통신을 가능하게 해 주며, 클라이언트-서버 모델에 기반해 작동한다.

 

주로 요청(Request)과 응답(Response) 형태로 구성되며 클라이언트(웹 브라우저)가 서버에게 리소스를 요청 시 서버는 요청에 대한 응답을 반환한다.
이 과정에서 상태를 저장하지 않는(stateless) 특성을 가져 각각의 요청과 응답은 독립적으로 동작한다.
다양한 메서드(GET, POST, PUT, DELETE 등)를 제공하여 이를 통해 웹페이지의 정보를 읽어오거나, 데이터를 추가하거나 수정 및 삭제하는 등의 작업 수행이 가능하다.

 

 

 

주로 사용되는 HTTP(S) 메서드들에 대해

  • GET
    • 서버에 정보를 요청하는 메서드로 웹 페이지의 내용을 불러온다.
  • POST
    • 서버에 데이터를 전송하는 메서드로, 데이터 베이스에 정보를 추가하거나, 로그인 인증 등에 주로 사용된다.
  • PUT
    • 서버의 기존 리소스를 수정하는 메서드로, RESTful API 설계에 주로 사용된다.
  • DELETE
    • 서버의 리소스를 삭제하는 메서드로, 역시 RESTful API에서 주로 사용된다.

 

 

 

HTTPS(Hypertext Transfer Protocol Secure)

HTTP와 다르게 데이터를 주고받을 때 SSL이라는 프로토콜을 이용해 암호화되어 전송되므로 보안성이 강화되어 있어 개인정보 유출 등의 위협이 줄어든다.
사용하는 기본 포트 번호는 443이다.
간략하게는 안전한 데이터 전송규약이다.

 

HTTPS로 넘어오며 해결된 주요 문제점은 다음과 같다.

  • 데이터 암호화
    • SSL/TLS 프로토콜을 사용해 클라이언트와 서버 간 통신을 암호화한다. 이로 인해 중간자 공격, 데이터 유출 위험이 크게 줄어들었다.
    • 대칭키 및 비대칭키 암호화를 사용하여 통신을 보안하고, 처음 연결을 설정할 때 클라이언트와 서버는 SSL/TLS 핸드셰이크를 진행하여 암호화에 사용될 대칭키를 안전하게 교환한다.
  • 인증 강화
    • 인증서를 사용해 웹사이트의 신뢰성을 확인한다. 사용자가 위조된 사이트에 접속하는 것을 방지할 수 있다.
    • 인증서는 도메인 이름, 기관 이름, 공개키 및 유효 기간 등의 정보를 포함하며, 클라이언트는 서버로부터 받은 인증서를 통해 서버의 신원을 확인하고, 신뢰할 수 있는 CA에 의해 발급된 경우에만 안전한 통신을 진행하게 된다.
  • 데이터 무결성 보장
    • 데이터 전송 과정에서 데이터가 변경, 손상되는 것을 감지할 수 있다. 이로 인해 데이터전송의 안정성과 무결성이 높아진다.

 

SSL(Secure Sockets Layer)와 TLS(Transport Layer Security)

SSL과 TLS는 인터넷 통신에서 데이터를 암호화하여 안전하게 전송하기 위한 보안 프로토콜이다.

 

  • SSL
    • 1990년대 중반 넷스케이프에서 개발된 최초의 보안 프로토콜이며, 연결 보안, 개인 정보 보호, 인증을 제공했다. 하지만 보안 상 이유로 업데이트되어 TLS로 대체되었으며, 현재는 잘 사용되지 않는다.
  • TLS
    • SSL의 개선된 버전으로 현재 널리 사용되고 있는 보안 프로토콜로 기밀성, 무결성 및 인증을 강화하며, 더 강력한 암호화 알고리즘을 사용하여 지속적으로 업데이트된다. 현재 대부분의 웹사이트에서 사용하며 데이터를 암호화하고 안전하게 전송한다.

 

 

 

📜참고