Spring

[Spring] Client와 Server / 웹 서버 / API / RESTful API

Young_Han 2024. 9. 25. 12:50

서버란 무엇일까?

네크워크

  • 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고받게 할 수 있는 기술

 

Client와 Server

 

  택배 네트워크
주소(IP) 대구광역시 00구 00로 0000 192.168.**.*
받는 사람(포트) 홍길동 8080
  • 네트워크에서 정보를 요청 받고 전달하려면 주소에 해당하는 IP 와 받는 사람에 해당하는 포트번호를 알려줘야 합니다.

 

웹 서버란?

  • 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트 요청을 응답하는 통신을 하는 일종의 컴퓨터
  • 웹 서버의 기본 동작 원리

  • 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청
  • 이후 웹서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송
    • HTTP : 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나이다.
    • 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰인다.
      • 통신규약 : 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속

 

API(application programming interface)

  • 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.
  • 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성해야 한다.

인터페이스(interface)

  • 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면을 의미한다.
  • 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

 

 

RESTful API

  • API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
  • REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다.
  • REST 아키텍처 스타일을 따르는 API를 REST API라고 한다.
  • 서버의 API가 적절하게 http를 준수하며 잘 설계되어있으면 "RESTful하다."

고유 리소스 식별자

  • 서버는 고유한 리소스 식별자로 각 리소스를 식별한다.
  • REST 서비스일 경우 서버는 일반적으로 URL을 사용하여 리소스 식별을 수행한다.
    • URL은 리소스에 대한 경로를 지정한다.
    • URL은 웹 사이트 주소와 유사하다.
    • URL은 요청 엔드포인트라고도 하며 클라이언트가 요구하는 사항을 서버에 명확하게 지정한다.

 

메서드

  • 개발자는 종종 HTTP를 사용하여 RESTful API를 구현한다
  • HTTP 메서드는 리소스에 수행해야 하는 작업을 서버에 알려준다.

 

HTTP 주요 메서드

GET

  • 클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스한다.

 

POST

  • 클라이언트는 POST을 사용하여 서버에 데이터를 전송한다.

 

PUT

  • 클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트한다.

 

Delete

  • 클라이언트는 Delete을 사용하여 서버의 리소스를 삭제한다.