HTTP와 HTTPS & RESTful API

·2023년 4월 17일
0

데일리 과제

목록 보기
3/15

HTTP와 HTTPS의 차이점은 무엇인가요?

HTTP는 암호화가추 가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 SSL(TLS)를 통해 안전하게 데이터를 주고받을 수 있다.

HTTP

  • 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜
  • 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜

HTTPS

  • HTTP에 데이터 암호화가 추가된 프로토콜
  • SSL(TLS) 인증을 통해 HTTPS 암호화를 진행하고 발신자와 수신자만 해당 암호를 해독하여 정보를 주고 받을 수 있음

실제 HTTPS 연결 과정

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

RESTful API에 대해 설명해보세요.

RESTful API

  • 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
  • REST 아키텍처 스타일을 따르는 API
    REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있음

REST

  • API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
    Server-Client(서버-클라이언트 구조)
    Stateless(무상태)
    Cacheable(캐시 처리 가능)
    Layered System(계층화)
    Uniform Interface(인터페이스 일관성)

장점

  • 확장성
    REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있습니다.
  • 유연성
    RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원합니다.
    애플리케이션 함수를 계층화하는 기능은 유연성을 더욱 향상시킵니다.
  • 독립성
    API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있습니다.
    또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있습니다.
profile
개발자가 되는 과정

0개의 댓글