HTTP(HyperText Transfer Protocol) 웹 브라우저와 웹 서버의 소통하기 위한 프로토콜 (약속)이다.
HTTP는 요청 메서드를 정의하여, HTTP 요청시 메소드를 지정하여 리소스와 관련된 행동을 지정할 수 있다. (CRUD 행동과 비슷!)
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다.
- Create : 데이터 생성
- Read : 데이터 읽기
- Updata : 새로운 데이터를 업데이트
- Delete : 데이터를 삭제
- CRUD 행동 / HTTP 메소드
1. Read 읽기 == GET : 읽고 싶어요
2. Create 생성 == POST : 생성해주세요
3. Updata 수정 == PUT / PATCH : 교체 / 수정해주세요
4. Delete 삭제 == DELETE : 삭제해주세요
CRUD 행동 (목적) | 적절한 메소드 | 주어진 리소스(데이터)에 수행하길 원하는 행동(목적) |
---|---|---|
조회 | GET | URL에 맞는 특정 리소스(데이터)를 가져오도록 요청! query parameter를 사용하여 필요한 리소스를 전달! 서버의 데이터를 변화시키지 않는 요청에 사용 |
생성 | POST | 요청마다 새로운 리소스를 생성, 서버로 데이터를 전송한다. 멱등성을 갖지 않는다. (이는 종종 서버의 상태의 변화나 부작용을 일으킴) |
수정 | PUT 또는 PATCH | PUT : 요청마다 같은 리소스를 반환, payload(본문)로 교체한다. / PATCH : 수정 리소스의 부분만을 수정하는 데 쓰입니다. |
삭제 | DELETE | 특정 리소스를 삭제합니다. |
멱등성이란?
매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 한다.
동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 리소스 상태(응답)도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말한다.
GET, HEAD, PUT, DELETE 메서드는 멱등성을 가지며, POST 메서드는 그렇지 않다.
출처
MDN: HTTP 요청 메서드
MDN: HTTP 메시지
MDN: HTTP 상태 코드
코드스테이츠