Collection
은 서버가 관리하는 리소스 디렉토리이다.Store
는 클라이언트가 관리하는 리소스 저장소이다.
- 문서(Document)
- 단밀 개념(파일 하나, 객체 인스턴스, 데이터 베이스 row)
- 컬렉션(Collection)
- 서버가 관리하는 리소스 디렉토리
- 서버가 리소스의 URI를 생성하고 관리
- 스토어(Store)
- 클라이언트가 관리하는 자원 저장소
- 클라이언트가 리소스의 URI를 알고 관리
- 컨트롤러(Controller), 컬트롤 URI
- 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행
- 동사를 직접 사용
요청을 완료하려면 유저 에이전트의 추가 행동이 필요
웹 브라우저는 3xx 응답의 결과에 Location Header가 있다면, Location 위치로 redirect한다.
300: Multiple Choices
301: Moved Permenently
302: Found
일시 리다이렉션
리다이렉트시 요청 메서드가 GET으로 변할 수 있고, 본문이 제거될 수 있음
3xx번대 중 가장 많이 쓰임
303: See Other
304: Not Modified
307: Temporary Redirect
클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
오류의 원인이 클라이언트에 있음
클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 요청의 재시도가 실패함.
400: bad reqeust
401: unauthorized
403: forbidden
404: not found
405: wrong method
서버 오류, 서버가 정상 요청을 처리하지 못함
500대 오류는 서버나 DB에 문제가 있을 수 있으므로 클라이언트가 똑같은 요청을 재시도해도 요청이 성공할 가능성이 있다.
500: Internal Server Error
503: Service Unavailable
나중에 288, 388, 458 이런식으로 convention하게 쓰이는 응답 코드가 아닌 처음 보는 응답코드여도 당황하지 않고 상위 상태코드(3번째 자리 숫자)를 파악하여 처리하면 된다.
개발할 때 각 팀들이 어느정도 내부적으로 응답코드를 정하고 사용하는 것이 좋다.
너무 많아지면 클라이언트 코드가 그걸 가지고 일일이 메시지를 만들거나 처리하는 것도 일이니까 말이다.