REST

넙데데맨·2022년 7월 4일
0

REST

HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍쳐
자원 - DBMS, 이미지,동영상,문서 같은 파일, 서비스 등 포함

REST의 속성

  1. 서버에 있는 모든 자원은 각 자원당 클라이언트가 바로 접근할 수 있는 고유 URI 존재
  2. 모든 요청은 클라이언트가 요청할 때마다 정보 주기 때문에 서버에서 세션 정보 보관 필요 없음
  3. HTTP 메소드 사용 / 모든 자원 http 인터페이스인 GET, POST, PUT, DELETE 4개 메소드로 접근 되어야 함
  4. 서비스 내 하나의 자원이 주변 연관 자원들과 연결되어 표현

REST 구성요소

자원 메소드 메시지

자원

자원 접근 시 URI로 하게 됨

URI 설계 규칙

1, (/) 구분자는 계층 관계 나타내는 데 사용 마지막 문자로 슬래시 쓰면 안됨
2. URI 이루는 자원들은 명사로 이뤄져야 함
3. 리소스 간 연관관계가 있으면 이를 표현해줘야함
4. URI에서 _보단 -사용
5. URI에선 소문자 사용
6. 파일 확장자에 URI 포함 시키면 안됨, Accept header 사용

메소드

HTTP 메소드
자원에 접근할 때 어떤 성격의 요청인지 HTTP가 알려준다
GET(조회), POST(URI 요청시 자원 생성), PUT(자원 수정), DELETE(자원 삭제)
같은 URI여도 메소드에 따라 다른 요청 성격을 띈다

메시지

HTTP header, body, 응답상태 코드로 구성

HTTP header, body

Body - 자원에 대한 정보 전달 (JSON, XML, 사용자 정의 포맷)
Header - HTTP 바디에 어떤 포맷으로 담겼는지 정의
요청 헤더는 Accept 항목 / 응답 헤더는 Content-type으로 컨텐츠 타입 설명

응답상태 코드

자원 요청에 대한 응답
404 500 등등

장점

언어와 플랫폼에 독립적, 개발 쉽고 단순
프레임워크, 언어 등 도구가 없어도 구현 가능
기존 웹 인프라 사용 가능(HTTP 사용하기 때문)

단점

HTTP 프로토콜만 사용 가능
p2p 통신 모델 가정이라 둘 이상 대상으로 하는 분산환경엔 유용하지 않음
보안, 정책 등에 대한 표준이 없어 관리 어렵고, 고려할 시 설계, 구현에서 어려움 가짐

profile
차근차근

0개의 댓글