[JS] HTTP 메소드 (GET, POST, PUT, DELETE, PATCH)
2024. 1. 28. 16:42ㆍ개발/프론트엔드 개념
HTTP 메소드란
클라이언트가 웹 서버에게 사용자 리퀘스트의 목적이나 종류를 알리는 수단이다.
Request의 종류
- 데이터 조회 GET
- 데이터 추가 POST
- 데이터 수정 PUT
- 데이터 삭제 DELETE
모든 Request는 Head와 Body로 나뉜다.
- Head : Reqest에 대한 부가 정보 (메서드)
- Body : 실제 데이터를 담는 부분 (data)
데이터를 추가하는 POST, 수정하는 PUT은 Body 부분의 데이터가 필요하지만 단순히 조회하는 GET과 DELETE는 Body 부분이 필요로 하지 않다.
GET method
- 데이터를 읽거나 검색할 때 사용
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
- 데이터 전달 가능하지만 권장하지 않음
- 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시될 수 있음
- 서버의 데이터 변경이 일어나지 않음
- 멱등성을 가짐 (= GET으로 동일한 리퀘스트를 반복하여 전송하더라도 동일한 응답이 돌아옴)
POST method
- 새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보낼 때 사용
- Request의 Body 부분을 통해 서버로 데이터 전달
- 일반적으로 캐시되지 않음
- 리소스 생성할 경우, 이미 리소스가 있더라도 새로운 리소스를 생성
- 서버의 데이터 변경이 일어날 수 있음
- 멱등성을 가지지 않음 (= POST으로 동일한 리퀘스트를 반복하면 동일한 응답을 보장할 수 없음)
PUT method
- 데이터 생성 및 수정하기 위해 사용 (POST와 동일한 역할)
- 기존에 리소스가 있으면 대체, 없으면 추가
- 데이터 생성한다는 점에서 POST와 공통점이 있지만 PUT은 클라이언트가 리소스 위치를 식별해서 URL 지정
- 멱등성을 가짐
DELETE method
- 지정한 기존 리소스 제거
- 서버의 데이터를 삭제하는 변경
- 멱등성을 가짐
PATCH method
- 리소스 부분 변경
- 지원 안하는 서버에서는 POST 메서드 사용
- PUT은 해당 리소스 전부 수정, PATCH는 해당 리소스 일부분만 수정
'개발 > 프론트엔드 개념' 카테고리의 다른 글
[JS] 이벤트 버블링, 캡쳐링, 위임 (0) | 2024.01.28 |
---|---|
[Git] Git Flow 브랜치 전략 (0) | 2024.01.15 |
[Git] branch merge 하는 방법 (0) | 2024.01.14 |
[CSS] position의 속성과 특징(static, relative, absolute, fixed, sticky) (1) | 2024.01.07 |
[HTML] 시맨틱 태그를 사용하면 좋은 점 (1) | 2024.01.07 |