2023. 1. 22. 03:49ㆍWeb/HTTP
HTTP API
URI 설계 : 가장 중요한 것은 리소스 식별!!!!!
- 리소스란? ex) '미네랄을 캐라' -> 미네랄이 리소스
- 계층 구조상 상위를 컬렉션으로 보고 복수 단어 사용 권장(member -> members)
- 리소스와 해당 리소스를 대상으로 하는 행위를 분리
- 리소스(회원), 행위(조회, 등록, 수정, 삭제)
- 리소스는 명사, 행위는 동사
HTTP 메서드 - GET, POST
GET
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 스트링)를 통해서 전달

POST
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버는 요청 데이터를 처리(메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행)
- 단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야 하는 경우
- 다른 메서드로 처리하기 애매한 경우에 애매하면 POST 사용
- 컨트롤 URI : POST의 결과로 새로운 리소스가 생성되지 않을 수 있음. 동사의 URI. 리소스만으로 설계할 수 없다.
ex) POST /orders/{orderId}/start-delivery
HTTP 메서드 - PUT, PATCH, DELETE
PUT
- 리소스를 대체(있으면 대체, 없으면 생성, 쉽게 말해서 덮어버림)
- 클라이언트가 리소스를 식별(클라이언트가 리소스 위치를 알고 URI 지정)
PATCH
- 리소스 부분 변경
- 리소스가 없을 때 생성하는가??? 404 not found 상태 코드로 응답
DELETE
- 리소스 제거
HTTP 메서드의 속성
안전
- 호출해도 리소스를 변경하지 않는다.(GET, HEAD :안전..)
- 안전은 해당 리소스만 고려
멱등(Idempotent)
- 한번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다.
- POST는 멱등하지 않는다.
- 멱등은 외부 요인으로 중간에 리소스가 변경되는 것까지는 고려하지 않는다.
캐시 가능
- 응답 결과 리소스를 캐시해서 사용해도 되는가? (GET, HEAD 정도만 캐시로 사용)
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'Web > HTTP' 카테고리의 다른 글
HTTP 상태코드 (0) | 2023.01.22 |
---|---|
HTTP 메서드 활용 (0) | 2023.01.22 |
HTTP 기본 (0) | 2023.01.22 |
URI와 웹 브라우저 요청 흐름 (0) | 2023.01.22 |
인터넷 네트워크 (1) | 2023.01.22 |