HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍쳐
자원 - DBMS, 이미지,동영상,문서 같은 파일, 서비스 등 포함
자원 메소드 메시지
자원 접근 시 URI로 하게 됨
1, (/) 구분자는 계층 관계 나타내는 데 사용 마지막 문자로 슬래시 쓰면 안됨
2. URI 이루는 자원들은 명사로 이뤄져야 함
3. 리소스 간 연관관계가 있으면 이를 표현해줘야함
4. URI에서 _보단 -사용
5. URI에선 소문자 사용
6. 파일 확장자에 URI 포함 시키면 안됨, Accept header 사용
HTTP 메소드
자원에 접근할 때 어떤 성격의 요청인지 HTTP가 알려준다
GET(조회), POST(URI 요청시 자원 생성), PUT(자원 수정), DELETE(자원 삭제)
같은 URI여도 메소드에 따라 다른 요청 성격을 띈다
HTTP header, body, 응답상태 코드로 구성
Body - 자원에 대한 정보 전달 (JSON, XML, 사용자 정의 포맷)
Header - HTTP 바디에 어떤 포맷으로 담겼는지 정의
요청 헤더는 Accept 항목 / 응답 헤더는 Content-type으로 컨텐츠 타입 설명
자원 요청에 대한 응답
404 500 등등
언어와 플랫폼에 독립적, 개발 쉽고 단순
프레임워크, 언어 등 도구가 없어도 구현 가능
기존 웹 인프라 사용 가능(HTTP 사용하기 때문)
HTTP 프로토콜만 사용 가능
p2p 통신 모델 가정이라 둘 이상 대상으로 하는 분산환경엔 유용하지 않음
보안, 정책 등에 대한 표준이 없어 관리 어렵고, 고려할 시 설계, 구현에서 어려움 가짐