HTTPS와 HTTP의 차이점, RESTful API에 대해서

병아리의최후·2023년 4월 17일
0

cs

목록 보기
2/3

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

HTTP (HyperText Transfer Protocol) 와 HTTPS (HyperText Transfer Protocol Secure)의 가장 큰 차이점은 보안입니다. HTTPS는 HTTP에 SSL/TLS 프로토콜을 추가하여 데이터를 암호화하여 전송합니다. 이로 인해 중간에서 데이터를 가로채더라도 내용을 확인할 수 없습니다. 따라서 HTTPS는 민감한 정보를 전송할 때 사용됩니다.

  • SSL / TLS 란?
    SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 인터넷에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜입니다.
    SSL은 Netscape에 의해 개발되었고, TLS는 SSL의 후속 버전으로 IETF에 의해 표준화되었습니다. 이 프로토콜들은 클라이언트와 서버 간의 통신을 암호화하여 중간에서 데이터를 가로채더라도 내용을 확인할 수 없게 합니다. HTTPS는 HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것으로 모든 웹 사이트와 다른 웹 서비스에서 사용됩니다.

참조
https://www.cloudflare.com/ko-kr/learning/ssl/transport-layer-security-tls/
https://whatismarketing.tistory.com/61


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

REST는 Representational State Transfer의 약자로, 자원을 자원(resource)의 표현(representation) 으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다.

REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다.
일반적으로 REST API와 RESTful API라는 용어는 같은 의미로 사용할 수 있습니다.

RESTful API는 HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 처리합니다. 이를 위해 RESTful API는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 서버에 요청을 보내고, 서버는 이에 대한 응답을 반환합니다.
RESTful API는 자원에 대한 URI(Uniform Resource Identifier)를 사용하여 자원을 표현하고, 자원의 표현 방법에 대한 미디어 타입을 정의합니다. 예를 들어, 자원의 URI는 "/users"와 같이 표현되며, JSON 또는 XML과 같은 미디어 타입을 사용하여 자원의 표현 방법을 정의합니다.

REST의 특징

  • Server-Client(서버, 클라이언트 구조)
    자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client
    서로간 의존성이 줄어듭니다
  • Stateless(무상태)
    HTTP 프로토콜은 Stateless Protocol이므로 REST 역시 무상태성을 갖습니다.
    이전 요청이 다음 요청의 처리에 연관되어서는 안됩니다. 물론 이전 요청이 DB를 수정하여 DB에 의해 바뀌는 것은 허용합니다. Server의 처리 방식에 일관성을 부여하고 부담이 줄어들며, 서비스의 자유도가 높아집니다.
  • Cacheable(캐시 처리 가능)
    웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있기 때문에 HTTP 가 가진 특징인 캐싱기능을 적용할 수 있습니다.
    캐시는 대량의 요청을 효율적으로 처리하기 위해 필요합니다.
  • Layered System(계층화)
    API Server는 순수 비즈니스 로직을 수행하고 그 앞단에 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 구조상의 유연성을 줄 수 있습니다. 또한 로드밸런싱, 공유 캐시 등을 통해 확장성과 보안성을 향상시킬 수 있습니다.
  • Code-On-Demand(optional)
    Server로부터 스크립트를 받아서 Client에서 실행합니다.
    반드시 충족할 필요는 없습니다.

  • Uniform Interface(인터페이스 일관성)
    URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행합니다. HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능합니다.
    특정 언어나 기술에 종속되지 않습니다.

REST API를 왜 쓸까?

확장성
REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있습니다. 무상태는 서버가 과거 클라이언트 요청 정보를 유지할 필요가 없기 때문에 서버 로드를 제거합니다. 잘 관리된 캐싱은 일부 클라이언트-서버 상호 작용을 부분적으로 또는 완전히 제거합니다. 이러한 모든 기능은 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 확장성을 지원합니다.

유연성
RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원합니다. 각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리합니다. 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않습니다. 애플리케이션 함수를 계층화하는 기능은 유연성을 더욱 향상시킵니다. 예를 들어, 개발자는 애플리케이션 로직을 다시 작성하지 않고도 데이터베이스 계층을 변경할 수 있습니다.

독립성
REST API는 사용되는 기술과 독립적입니다. API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있습니다. 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있습니다.

참조
https://aws.amazon.com/ko/what-is/restful-api/
https://velog.io/@soom/REST-Representational-State-Transfer

0개의 댓글

관련 채용 정보