[Web] HTTP 요청 메서드(Method) 정리 (GET, POST, PUT, PATCH, DELETE)

 

HTTP 요청 메서드는 클라이언트가 서버 측에 요청하는 HTTP 메시지를 전송하는 방식을 뜻합니다. 즉 서버에 HTTP 메서드를 요청할 때 서버에서 기대하는 행동을 정의해서 보낸다고 생각하시면 되겠습니다. 이 HTTP 메서드가 필요한 이유는 서버 측에서 HTTP 메시지의 의미를 쉽게 파악하기 위해서입니다. 예를 들어 회원관리를 하는 관리자 사이트가 있다고 해봅시다. 그러면 회원들의 정보를 수정하기 위해서는 클라이언트에서 서버로 HTTP 요청을 서버에 날려야 할 텐데, 같은 HTTP 메시지에 메서드만 PEATCH(수정), DELETE(삭제)냐에 서버는 요청 메시지의 의미를 구분할 수 있게 되고, 그에 따른 동작을 명확하게 처리할 수 있게 됩니다. 이러한 HTTP 메서드는 RESTful API에서 자주 사용되며, 클라이언트와 서버 간의 효율적인 통신을 가능하게 합니다.

 


 

 HTTP 메서드 종류 

주요 메서드

  • GET : 리소스를 조회할 때 사용합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
  • POST : 서버에서 요청 데이터를 처리하라는 의미로 중의적으로 사용되며 특히 등록에서 많이 사용됩니다.
  • PUT : 기존 리소스가 있다면 대체하고, 없다면 생성합니다.
  • PATCH : 특정 리소스의 일부분만 수정하는데 사용됩니다.
  • DELETE : 특정 리소스를 삭제합니다.

 

기타 메서드 (거의 사용하지 않습니다)

  • HEAD : GET과 비슷하지만, 실제 문서를 요청하는 것이 아니라, 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더 같은 문서 정보만 요청합니다.
  • OPTIONS : 서버에서 제공하는 메서드를 질의합니다.(주로 CORS에서 사용)
  • CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정합니다.
  • TRACE : 요청 리소스가 수신되는 경로를 보여줍니다. 

 


 

 HTTP 주요 메서드 

GET 메서드

GET /example/resource?id=123&name=example

 

GET 요청으로 서버는 /members/100에 일치하는 응답 데이터를 전송함

 

  • 용도: 리소스를 조회할 때 사용합니다.
  • 특징
    • 서버에 전달하고 싶은 데이터는 url에 첨부하여 전송합니다. query(쿼리 파라미터, 쿼리 스트링)을 통해서 전달
    • 보안에 취약하며, 민감한 데이터는 전송하지 않아야 합니다.
    • 브라우저에서 캐싱할 수 있어, 동일한 요청에 대한 응답을 캐시하여 빠른 응답을 유도할 수 있습니다.
    • 메시지 바디를 사용하여 데이터를 첨부할 수도 있지만, 지원하지 않는 곳이 많아서 권장하지는 않습니다.
    • form-data의 method로 지원합니다.

 

POST 메서드

POST /example/resource
Body:
{
  "id": 123,
  "name": "example"
}

 

POST 요청으로 서버는 /members/100 이라는 신규 리소스 식별자를 생성하고 응답 데이터를 전송함

 

  • 용도: 서버에 데이터를 제출하여 리소스를 처리하도록 합니다. 명확한 의미보다는 중의적인 표현으로 사용됩니다.
  • 특징:
    • 데이터를 HTTP 메시지 바디를 통해 서버로 요청 데이터를 전송합니다.
    • HTTP 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행합니다.
    • GET보다 보안적으로 우수하며, 길이에 대한 제한이 없습니다.
    • 브라우저에서 캐시하지 않으므로 민감한 데이터를 보낼 때 유용합니다.
    • form-data의 method로 지원합니다.

 

PUT 메서드

PUT /example/resource/123
Body:
{
  "id": 123,
  "name": "updated_example"
}

PUT 요청으로 members/100의 리소스를 완전히 대체함

 

  • 용도: 서버에 리소스를 대체하거나(기존 리소스가 있으면) 생성하기(기존 리소스가 없으면) 위해 사용됩니다.
  • 특징:
    • 데이터를 HTTP 메시지 바디를 통해 서버로 요청 데이터를 전송합니다.
    • 만약 리소스가 이미 존재하면 업데이트하고, 없으면 새로 생성합니다.
    • 전체 리소스를 업데이트하므로 일부 업데이트가 필요한 경우 PATCH 메서드를 사용하는 것이 더 적절할 수 있습니다.

 

PATCH 메서드

PATCH /example/resource/123
Body:
{
  "name": "partial_update"
}

PATCH 요청으로 /member/100의 age 리소스를 부분적으로 대체함

 

  • 용도: 서버에 리소스의 부분적인 업데이트를 위해 사용됩니다.
  • 특징:
    • 리소스의 일부분만을 업데이트할 때 사용됩니다.
    • PUT과는 달리, 전체 리소스를 업데이트하지 않고 필요한 부분만 업데이트합니다.

 

DELETE 메서드

DELETE /example/resource/123

DELETE 요청으로 /members/100 에 해당하는 리소스가 삭제됨

 

  • 용도: 서버에서 특정 리소스를 삭제하기 위해 사용됩니다.
  • 특징:
    • 요청한 URI의 리소스를 삭제합니다.
    • 성공 시 200 OK 또는 204 No Content 응답을 반환합니다.

 

 

댓글

Designed by JB FACTORY