HTTP 메서드

2023. 1. 22. 03:49Web/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 정도만 캐시로 사용)

 

 

 

* 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의에 바탕하여 작성하였습니다.

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