[HTTP] HTTP 메서드에 대해 알아보자

2025. 6. 8. 14:26·Programing Knowledge/CS

HTTP 메서드는 왜 필요할까?

HTTP 메서드가 왜 필요한지 이해하려면,

먼저 URI를 설계하는 방식을 살펴볼 필요가 있다.

 

예를 들어, 회원 정보 조회하는 기능응ㄹ 위한 URI를 설계한다고 가정해보자.

/members

URI 설계를 할 때 가장 중요한 기준은 '자원(Resource)' 중심으로 구성하는 것이다.

해당 경우에서 자원은 '회원 정보'이기 때문에 memeber만 표현해도 충분하다.

 

그렇다면 회원 정보를 등록할 때는 어떻게 해야 할까?

자원이 같다면 등록할 때도 같은 URI(/members)를 사용할 수 있어야 한다.

 

그러면 조회와 등록은 분명 다른 행위인데,

같은 URI를 사용한다면 그 차이를 어떻게 구분할 수 있을까?

 

조회와 등록 등의 행위를 구분해 주는 것이 바로 HTTP 메서드이다.

 

 

자주 사용하는 HTTP 메서드

HTTP 메서드에는 다양한 종류가 있는데

그중에서 자주 사용하는 메서드 5가지를 설명하겠다.

GET, POST, PUT, PATCH, DELETE

 

1️⃣ GET

데이터 조회

GET은 데이터를 조회할 때 사용하는 메서드다.

예를 들어, 회원 전체 목록이나 특정 회원 정보를 가져올 때 GET을 사용한다.

서버에 추가적인 정보를 전달할 때는 주로 쿼리 파라미터를 사용한다.

Message Body에 넣어서 전달할 수 있긴 하지만 지원하는 곳이 많지 않아서 권장하지 않는 방법이다.

 

2️⃣ POST

데이터 생성 및 처리 요청

POST는 데이터 등록뿐만 아니라 서버에게 데이터를 처리해 달라고 요청할 때 사용한다.

 

POST를 사용하는 경우는 다음과 같다.

1. 새로운 데이터 생성

2. 요청 데이터 처리

3. 다른 메서드로 처리하기 애매한 경우

 

3️⃣ PUT

전체 데이터 대체

PUT으로 요청을 보내면 데이터가 없을 때는 새롭게 생성하고, 있으면 같이 보낸 데이터로 대체한다.

기존에 있는 데이터에서 새로운 데이터로 아예 바뀐다고 생각하면 된다.

 

4️⃣ PATCH

데이터 일부 수정

PATCH는 기존의 데이터에서 일부의 내용만 수정할 때 사용한다.

예를 들어, 이름과 나이 정보를 가진 회원이 있을 때, PATCH를 사용하면 이름 혹은 나이 각각을 수정할 수 있다.

 

만약 이때 PUT를 사용하면, { 이름, 나이 }의 형식이었던 데이터가 { 이름 } 혹은 { 나이 }의 형식으로 바뀌기 때문에 주의해야 한다.

 

5️⃣ DELETE

데이터 삭제

DELETE는 말 그대로 데이터를 삭제할 때 사용한다.

예를 들어, 작성했던 게시글을 하나 지우거나, 장바구니에 추가했던 제품을 삭제할 때 사용한다.

 

 

HTTP 메서드의 3가지 특징

HTTP 메서드에는 3가지 특징이 있다.

1. 안전성
2. 멱등성
3. 캐시 가능성

 

1. 안전성 (Safe)

'안전성'은 해당 메서드가 서버의 데이터를 변경하지 않다는 것을 뜻한다.

HTTP 메서드 중에서 `GET`과 `HEAD`가 여기에 속한다.

단순히 조회만 하는 경우에 사용하기 때문에, 서버 상태에는 영향을 주지 않는다.

2. 멱등성 (Idempotent)

'멱등성'은 같은 요청을 여러 번 보내도 결과가 동일하다는 것을 뜻한다.

예를 들어, 같은 요청을 1번, 10번, 100번 보내더라도 결과가 변하지 않는 것이다.

HTTP 메서드 중에서 `GET`, `PUT`, `DELETE`가 여기에 속한다.

 

멱등성은 주로 자동 복구 메커니즘에 유리하다.

예를 들어, 요청 도중 서버에서 오류가 발생했을 때 클라이언트가 같은 요청을 다시 보내도 문제 없이 처리할 수 있다.

GET, PUT, DELETE의 경우에는 똑같은 요청을 여러 번 보내도 동일한 결과를 얻기 때문에 자동 복구 메커니즘을 사용해도 된다.

 

하지만, POST의 경우에는 똑같은 요청을 여러 번 보냈을 때 위험한 상황이 발생할 수 있다.

예를 들어, 커피 원두를 구매하기 위해 구매하기 버튼을 눌렀다. 이때 서버에서 오류가 발생했다고 똑같은 요청을 여러 번 보내다 보면 결제가 1번이 아니라 중복으로 이뤄질 수는 문제가 발생한다.

 

3. 캐시 가능성 (Cacheable)

'캐시가 가능하다'는 것은 응답 결과를 저장해두고 재사용할 수 있다를 뜻한다.

HTTP 메서드 중에서 `GET`, `HEAD`, `POST`, `PATCH`가 여기에 속한다.

이중에서 `GET`과 `HEAD`가 주로 사용된다.

 

캐시는 서버 부하를 줄이고 빠른 응답을 제공할 수 있어 성능 최적화에 도움이 된다.

 

 

마무리

HTTP 메서드는 '자원을 어떻게 다룰 것인가', 즉 '행위'를 나타내는 기능이다.

각각의 상황에 맞는 HTTP 메서드를 선택해서 사용하면 된다.

 


[참고 자료]

김영한님 강의 - 모든 개발자를 위한 HTTP 웹 기본 지식

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Programing Knowledge > CS' 카테고리의 다른 글

[HTTP] HTTP 헤더에 대해 알아보자  (2) 2025.06.09
[HTTP] HTTP란 무엇일까?  (1) 2025.06.07
[HTTP] HTTP를 이해하기 위해 필요한 지식들  (1) 2025.06.06
'Programing Knowledge/CS' 카테고리의 다른 글
  • [HTTP] HTTP 헤더에 대해 알아보자
  • [HTTP] HTTP란 무엇일까?
  • [HTTP] HTTP를 이해하기 위해 필요한 지식들
집으로 감자
집으로 감자
Hello World
  • 집으로 감자
    Potato to Home
    집으로 감자
  • 전체
    오늘
    어제
  • 링크

    • Github
    • 분류 전체보기
      • Front-end
        • TIL
        • Javascript
        • Typescript
        • React
        • Next.js
        • CSS
        • 라이브러리
      • Algorithm
        • 프로그래머스: 기초 트레이닝
        • 프로그래머스 LV1
      • TroubleShooting
      • Problem & Solution
      • Project
      • Programing Knowledge
        • 개발 용어
        • CS
        • 운영체제
        • 자료구조
        • 데이터 베이스
  • 태그

    JavaScript
    Til
    실행컨텍스트
    프로그래머스
    CSS
    트러블슈팅
    문제해결
    반응형웹
    개발용어
    styledcomponent
    회고
    tanstackquery
    코딩테스트
    http
    react
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
집으로 감자
[HTTP] HTTP 메서드에 대해 알아보자
상단으로

티스토리툴바