[Network] HTTP와 HTTPS

·2024년 7월 26일
1

CS

목록 보기
4/4
post-thumbnail

✔️HTTP을 간단히 짚고. . .

기본적으로 이미 몇번이나 짚었던 개념인데, 한번 더 정리하면서 확인해보기로 하자.

HTTP(Hyper Text Transfer Protocol)은 클라이언트와 서버간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜이다.

  • TCP/IP 기반
  • request(요청)/response(응답) 형태

HTTP 구조

  • HTTP method: 요청의 목적을 담고 있는 GET, POST, PUT, DELETE 등이 있다.
    - GET: 자원에 대한 요청(조회 개념)
    - POST: 새로운 자원 생성
    - PUT: 자원에 대한 변경(수정 개념)
    - DELETE: 존재하는 자원 삭제
    업로드중..

HTTP/2, HTTP/3 ?

최초의 버전이 HTTP/1.1 이다. HTTP/2, HTTP/3은 예상할 수 있듯이 프로토콜 자체를 업그레이드한 버전이며, 데이터 전송 시스템을 수정하여 효율성을 개선한 것이다.

  • HTTP/2 : 텍스트 형식 대신, 바이너리로 데이터를 교환
  • HTTP/3: 실시간 스트리밍 및 기타 최신 데이터 전송 요구사항을 보다 효율적으로 지원

✔️그렇다면 HTTPS는 뭘까?

HTTP는 암호화되지 않은 데이터를 전송하는 프로토콜이기 때문에, 보안면에서는 문제가 될 수 밖에 없다. 이러한 문제를 해결하기 위해 HTTPS가 등장하게 된 것이다.

HTTPS(Hyper Transfer Protocol Secure)는 말 그대로 HTTP에 데이터 암호화가 추가된 프로토콜 이다. 즉, 데이터를 안전하게 전송하기 위해 사용된다.

HTTPS의 암호화

암호화는 데이터를 읽을 수 없는 형태로 변환하는 과정이며, 대칭키비대칭키 방식 2가지가 존재한다.

  • 대칭키 암호화
    • 암호화와 복호화에 동일한 키 사용
    • 빠르고 효율적
    • 키를 안전하게 공유하기가 어려움 (키를 교환하는 과정에서의 도청될 위험)
  • 비대칭키 암호화
    • 암호화와 복호화에 다른 키 사용
    • 공개키와 개인키로 구성됨(공개키- 누구나 접근 가능, 개인키- 소유자만이 접근 가능)
      • 공개키와 개인키는 한 쌍
      • 공개키 암호화-개인키 복호화: 개인키는 소유자만이 갖고 있으므로, 소유자만이 볼 수 있음
      • 개인키 암호화-공개키 복호화: 공개키는 모두에게 공개되어 있으므로, 소유자가 인증한 정보임을 알려 신뢰성을 보장할 수 있음
    • 높은 보안성
    • 대칭키에 비해 떨어지는 성능

HTTPS 동작 과정

  1. 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
  2. 서버는 공개키(엄밀히는 인증서)를 브라우저에게 넘김
  3. 브라우저는 인증서의 유효성을 검사하고 세션키 발급
  4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송
  5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키 얻음
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화 진행

결국 HTTP와 HTTPS의 가장 큰 차이는 보안과 관련된 부분이라고 볼 수 있다.

0개의 댓글