- 자원(Resource): URI
행위(Verb): HTTP Method 🍎
- 표현(Representations)
클라이언트가 웹 서버에게 사용자 요청의 목적
이나 종류
를 알리는 수단
⭐️ 주요 메소드 5가지
- GET : 리소스 조회
- POST : 요청 데이터 처리, 주로 데이터 등록에 사용
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성
- PATCH : 리소스를 일부만 변경
- DELETE : 리소스 삭제
기타 메소드 4가지
- HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS: 대상 리소스에 대한 통신 가능 옵션을 설명(주로 CORS에서 사용)
- CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정
- TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
GET 메소드는 주로 데이터를 읽거나(Read)
검색(Retrieve)
할 때에 사용되는 메소드이다. 만약에 GET요청이 성공적으로 이루어진다면 XML이나 JSON과 함께 200 (Ok) HTTP 응답 코드를 리턴한다. 에러가 발생하면 주로 404 (Not found) 에러나 400 (Bad request) 에러가 발생한다.
👉 규칙
- HTTP 명세에 의하면 GET 요청은 오로지 데이터를
읽을 때만 사용
되고 수정할 때는 사용하지 않는다.- GET 요청은
idempotent 하다.
같은 요청을 여러 번 하더라도 변함없이 항상 같은 응답을 받을 수 있다.- 데이터를 변경하는 연산에 사용하면 안된다.
ex)
GET /user/1
URL
을 통해서 파라미터
를 받고 있는 모습을 볼 수 있다.POST 메소드는 주로 새로운 리소스를 생성(create)
할 때 사용된다. 조금 더 구체적으로 POST는 하위 리소스(부모 리소스의 하위 리소스)들을 생성하는데 사용된다. 성공적으로 creation을 완료하면 201 (Created) HTTP 응답을 반환한다.
👉 규칙
- POST 요청은
idempotent 하지 않다.
같은 POST 요청을 반복해서 했을 때 항상 같은 결과물이 나오는 것을 보장하지 않는다- 두 개의 같은 POST 요청을 보내면 같은 정보를 담은 두 개의 다른 resource를 반환할 가능성이 높다.
ex)
POST /user
body : {date : "example"}
Content-Type : "application/json"
Body
값과 Content-Type 값을 작성해야한다. 해당 예시는 JSON을 통해서 작성된 예시이다.Body
값을 통해서 받는다.PUT는 리소스를 생성
/ 업데이트
하기 위해 서버로 데이터를 보내는 데 사용됩니다.
👉 규칙
- PUT 요청은
idempotent 합니다.
- 동일한 PUT 요청을 여러 번 호출하면 항상 동일한 결과가 생성됩니다.
ex)
PUT /user/1
body : {date : "update example"}
Content-Type : "application/json"
URL
을 통해서 어떠한 데이터를 수정할지 파라미터를 받는다. 그리고 수정할 데이터 값을 Body
값을 통해서 받는다.DELETE 메서드는 지정된 리소스를 삭제
합니다.
ex)
DELETE /user/1
URL
을 통해서 어떠한 데이터를 삭제할지 파라미터를 받는다.멱등성이란 여러번 수행해도
결과가 같음을 의미한다. 즉, 호출로 인하여 데이터가 변형이 되지 않는다는 것
을 의미한다.
스터디 활동을 위해 기록하고 있습니다.
다르거나 추가해야할 내용이 있다면 언제든지 코멘트 남겨주세요 :)
✉ dmsp1234@gmail.com