GET과 POST의 차이
GET
- URL을 기반으로 데이터를 요구하는 메서드이다.
- URL을 기반으로 하기 때문에 길이 제한(2000자 미만)이 있다.
- 성공 시 HTTP 200 OK를 반환한다.
- 캐싱이 가능하다.
- URL을 기반으로 요청하기 때문에 해당 요청의 파라미터가 브라우저 기록에 남는다.
- URL을 기반으로 요청하기 때문에 ASCII 문자열만을 보낼 수 있다. 사용자의 이름, 비밀번호 등 민감한 정보를 전달할 때 사용하지 않는다.
POST
- URL이 아닌 HTTP message body를 통해 데이터를 전달한다.
- 따라서 길이 제한이 없다.
- 성공적으로 데이터를 생성할 경우 HTTP 201을 반환한다. 물론 요청에 따른 응답에 데이터 생성이 아닌 경우 200을 반환할 수 있다.
- 캐싱이 불가능하다.
- URL을 기반으로 요청하지 않기 때문에 해당 요청의 파라미터가 브라우저 기록에 남지 않는다.
- HTTP message body로 요청하기 때문에 모든 유형의 데이터를 기반으로 요청할 수 있다.
- 사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용할 수 있다.
PUT과 PATCH의 차이
PUT
- 업데이트하는 데이터의 전체를 보낸다.
- 해당 데이터가 없다면 새로이 생성하고 데이터가 있다면 보낸 데이터로 대체한다.
PATCH
- 업데이트하는 데이터의 일부를 보낸다.
- 데이터의 일부를 통해 기존에 있던 데이터를 단순 수정한다.