HTTP 메서드 요약
[메인]
GET: 리소스 조회
POST: 요청 데이터 처리, 주로 등록에 사용
PUT: 리소스를 대체, 해당 리소스가 없으면 생성
PATCH: 리소스 부분 변경
DELETE: 리소스 삭제
[기타]
HEAD: GET과 동잃라지만 메세지 부분을 제외하고 상태 줄과 헤더만 반환
OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
CONNECT: 대상 리소스로 식별되는 서버에 대한 터널을 설정
TRACE: 대상 리소스에 대한 경로를 따라 메세지 루프백 테스트를 수행
GET
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query를 통해서 전달
- 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아 권장X
(ex)
GET /members/100 HTTP/1.1
HOST: localhost:8080
POST
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버는 요청 데이터를 처리
- 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
- 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
(ex)
POST /members HTTP/1.1
Content-Type: aplication/json
{
"username": "young"
"age": 20
}
- 회원가입 / 주문 / 글쓰기 / 댓글달기 / 내용 추가 등에 활용
- 거의 모든 부분에서 사용할 수 있음.
- 즉, URI에 POST 요청이 오면 어떻게 처리할지 리소스마다 정의해줘야 함!
PUT
- 리소스를 대체
- 리소스가 있으면 대체
- 리소스가 없으면 생성
- 덮어쓰기
- 중요!
- 클라이언트가 리소스를 식별하고 있어야 함.
- URI를 직접 지정해서 들어와야 함!
- 기존 리소스에 username, age가 있는 상태에서 age만 PUT으로 보내면
age만 살아남는다. username는 덮어씌워지지 않고 사라짐
(ex)
PUT /members/100 HTTP/1.1
Content-Type: aplication/json
{
"username": "young"
"age": 20
}
PATCH
- 리소스 부분 변경
- PUT과 달리 새로운 데이터가 부족하더라도 기존 다른 데이터를 삭제하지 않음.
(ex)
PATCH /members/100 HTTP/1.1
Content-Type: aplication/json
{
"username": "young"
}
DELETE
- 리소스 제거
- 대상 URI의 값을 제거함
(ex)
DELETE /members/100 HTTP/1.1
Host: localhost:8080