- 자원(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