HTTP 메서드

Dante·2023년 6월 23일

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
profile
거북이처럼!

0개의 댓글