ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Client, Server, REST
    Spring 2024. 2. 22. 01:45
     

    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의 특징, 장 단점 등을 잘 설명해주셨습니다.

    'Spring' 카테고리의 다른 글

    Spring 3 Layer Architecture  (0) 2024.02.22
    @RequestParam, @PathVariable, @ModelAttribute, @RequestBody  (0) 2024.02.22
    Servlet  (0) 2024.02.22
    MVC 디자인 패턴  (0) 2024.02.22
    Gradle, Lombok  (0) 2024.02.22
Designed by Tistory.