[cs]HTTP / HTTPS 의 차이점

hwakyoung·2024년 3월 18일
0
post-thumbnail

👉🏻 HTTP란?

HyperText Transfer Protocol의 약자로 하이퍼텍스트 전달 프로토컬이다.

  • 서버클라이언트가 서로 데이터를 주고받기 위해 사용되는 통신 규약

  • Hyper Text는 사용자가 필요한 정보를 자유롭게 검색할 수 있도록 만들어 주는 텍스트 전개 방식이다.



예를 들어 인터넷 주소를 지정할 때 http://www.naver.com 와 같이 시작하는 것을 www.naver.com이라는 인터넷 주소가 가진 데이터 정보 등의 교환을 HTTP의 통신 규약대로 처리하라는 것을 의미한다고 볼 수 있다.

출처


👉🏻 HTTP의 특징

1. 클라이언트 서버 구조

클라이언트가 서버에 요청을 보내면 -> 서버가 요청에 대한 응답을 보내는
클라이언트 - 서버 구조로 이루어져 있다.


2. 무상태 프로토컬(Stateless)

HTTP에서는 서버가 클라이언트의 상태를 보존하지 않는다.
==> 응답과 요청이 독립적이다.


  • 장점: 서버 확장성이 높다
    => 무상태는 응답 서버를 쉽게 바꿀 수 있기 때문에 계속해서 서버를 증설할 수 있다.

  • 단점: 클라이언트가 추가 데이터를 전송

무상태의 한계(stateless)
로그인과 같이 유저의 상태를 유지해야하는 서비스라면, 브라우저 쿠키, 서버 세션, 토큰 등을 이용해 상태를 유지해야 한다.

출처


3. 비연결성(Connectionless)

클라이언트와 서버가 한 번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버리는 성질

그러니까 쉽게 정리해보자면
클라이언트+서버 => 요청에 의한 응답 완료 => 연결 끊기 이렇게 이어져 있다.

  • 장점: 연결을 유지하기 위한 리소스를 줄이면 더 많은 연결을 할 수 있다.
  • 단점: 연결/해제에 대한 오버헤드가 발생

출처
출처


👉🏻 HTTPS란?

HyperText Transfer Protocol Secure의 약자로, 웹 통신 프로토콜인
HTTP의 보안 버전을 의미

사이트와 웹 브라우저 간의 통신을 암호화하여 보호한다.

HTTPS 는 대칭키 암호화와 + 공개키 암호화로 조작하여 작동한다.
SL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작한다.


SSL & TLS

SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)은 네트워크 통신에서 보안을 제공하기 위해 사용되는 암호화 프로토콜이다.

하지만 SSL에는 문제점들이 존재했고 그 문제점을 해결하기 위해 등장한 것이 TLS이다.


👉🏻 HTTPS의 동작 과정

  1. 암호화된 연결 설정

  2. 서버 인증: 서버는 클라이언트에게 공개된 인증서를 제공합니다.

  3. 클라이언트 인증 (옵션): 서버가 클라이언트 인증을 요구할 경우, 클라이언트는 자신의 클라이언트 인증서를 제공합니다.

  4. 세션 키 교환: 클라이언트와 서버는 안전한 방식으로 세션 키를 교환합니다. 일반적으로 공개키 암호화를 사용하여 이 작업을 수행하며, 교환된 세션 키를 사용하여 데이터를 암호화 및 복호화합니다.

  5. 데이터 전송: 세션 키를 사용하여 클라이언트와 서버 간에 암호화된 통신이 이루어집니다. 이제 데이터는 중간에 있는 공격자가 가로채거나 해독할 수 없습니다.

  6. 세션 종료: 통신이 완료되면 세션은 종료되고, 연결은 닫힙니다.

출처
출처


HTTP / HTTPS의 차이점

HTTP 메시지는 일반 텍스트이므로, 권한이 없는 당사자가 인터넷을 통해 쉽게 액세스하고 읽을 수 있습니다. 반면, HTTPS는 모든 데이터를 암호화된 형태로 전송

결론을 쉽게 정리하자면 보안계층이 있냐 없냐의 차이이다.

profile
fire-irror

0개의 댓글

관련 채용 정보