정의
리소스를 생성하거나 서버에 데이터를 전송하는 메서드
일반적으로 요청 본문에 데이터를 담아 전송하며, 서버는 이를 처리한 결과를 응답합니다.
특징
멱등하지 않으며, 서버 상태를 변경합니다.
서버 상태 변화: 서버에 새로운 리소스를 생성하거나, 데이터를 수정하는 경우 사용
멱등성 X: 같은 POST 요청을 여러 번 보내면 서버에 중복 데이터가 생길 수 있음
캐싱 불가: 기본적으로 브라우저가 POST 요청을 캐싱하지 않음
본문 포함: 요청 본문에 JSON, 폼 데이터 등 다양한 데이터 포맷 사용
보안: URL에 데이터가 노출되지 않으므로 GET보다 보안에 유리함
파일 업로드 가능: 이미지, PDF 등 바이너리 데이터 전송에 적합
사용 예시
서버 리소스 생성 및 데이터 전송 시 사용합니다.
회원가입: 사용자 정보를 서버로 전송하여 새 계정 생성
게시글 등록: 작성한 게시글을 서버에 저장
댓글 작성: 게시글에 대한 댓글을 DB에 삽입
결제 처리: 주문 정보 및 결제 데이터 전송
비밀번호 변경: 현재 비밀번호와 새 비밀번호를 함께 전송
코드 예시
서버 리소스 생성 및 데이터 전송 시 사용합니다.
// 사용자 등록 POST 예시
fetch('/api/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'jangho',
password: 'secure1234'
})
})
.then(res => res.json())
.then(data => console.log(data));