Client, Server, REST

김태훈·2024년 1월 1일
0

Spring

목록 보기
2/16
post-thumbnail

Client

클라이언트는 서버의 서비스를 받아 사용하는 장치, 프로그램을 의미합니다

Server

서버는 네트워크를 통해 클라이언트에게 서비스를 제공하는 시스템입니다.

웹 서버의 동작 원리

  1. 클라이언트는 웹 브라우저를 통해 HTTP Request로 웹사이트를 웹 서버에 요청합니다.
  2. 웹 서버는 요청을 승인하고 HTTP Response를 통해 웹 사이트 데이터를 브라우저에게 전송합니다.
  3. 브라우저는 받아온 데이터를 이용해 웹 사이트를 브라우저에 그려냅니다.

REST

REST(Representational State Transfer)는 API작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다.

REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 합니다.

자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미하며 자원의 표현에 의한 상태 전달입니다.

  • 자원의 표현
    자원 : 해당 소프트웨어가 관리하는 모든것
    ex) 문서, 그림, 데이터 등
    자원의 표현 : 그 자원을 표현하기 위한 이름
    ex) DB의 사용자 정보가 자원일 때, user를 자원의 표현으로 정함
  • 상태(정보) 전달
    데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
    JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적입니다.

REST의 중심 규칙

가장 중요하며 기본적인 규칙입니다.

  • URI는 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method로 표현한다.

HTTP Method의 역할


세부 규칙

  1. 슬래시 구분자 ( / )는 계층 관계를 나타내는데 사용한다.

  2. URI 마지막 문자로 슬래시 ( / )를 포함하지 않는다.

  • 즉 URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것
  • 역으로 리소스가 다르면 URI도 달라져야 한다.
  1. 하이픈 ( - )은 URI 가독성을 높이는데 사용한다.

  2. 밑줄 ( _ )은 URI에 사용하지 않는다.

  3. URI 경로에는 소문자가 적합하다.

  • URI 경로에 대문자 사용은 피하도록 한다.
  1. 파일확장자는 URI에 포함하지 않는다.
  • REST API 에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않는다.
  • 대신 Accept Header 를 사용한다.
  • ex)
GET: http://restapi.exam.com/orders/2/Accept: image/jpg
  1. 리소스 간에 연관 관계가 있는 경우

/리소스명/리소스ID/관계가 있는 다른 리소스 명
ex) GET: /users/2/orders (일반적으로 소유의 관계를 표현할 때 사용)

참고 : https://velog.io/@somday/RESTful-API-이란

참고한 블로그에서 그 외의 REST의 특징, 장 단점 등을 잘 설명해주셨습니다.

0개의 댓글