컴퓨터 과학/네트워크

HTTP 메서드란?

Data Jun 2025. 10. 5. 10:41

HTTP 메서드는 클라이언트(예: 웹 브라우저)가 서버에게 **“무엇을 해달라”**고 요청할 때 사용하는 행동 명령어입니다.
즉, 어떤 자원을 조회할지, 생성할지, 수정할지, 삭제할지를 구분하는 역할을 합니다.

 

1. GET — “가져다주세요”

GET은 서버에 있는 자원(resource) 을 조회할 때 사용하는 메서드입니다.
웹 브라우저에서 주소(URL)를 입력하면 내부적으로 GET 요청이 전송됩니다.

예를 들어

GET /example-page HTTP/1.1
Host: www.example.com

이 요청은 www.example.com 서버에서 /example-page 자원을 가져오겠다는 의미입니다.

  • GET 요청은 주로 HTML, 이미지, JSON 등 데이터를 읽을 때 사용됩니다.
  • 요청 본문(body)은 거의 사용하지 않고, 쿼리 문자열(?name=value) 형태로 데이터를 전달합니다.

 

2. HEAD — “헤더만 주세요”

HEAD는 GET과 거의 동일하지만, 본문 없이 헤더 정보만 요청합니다.
서버는 실제 데이터를 보내지 않고, 해당 자원의 메타데이터(Content-Type, 길이, 상태 코드 등) 만 응답합니다.

이 메서드는 주로 다음과 같은 상황에서 사용됩니다.

  • 파일의 크기나 형식을 확인할 때
  • 링크가 유효한지 빠르게 점검할 때

 

3. POST — “처리해주세요”

POST는 서버가 새로운 작업을 수행하도록 요청할 때 사용됩니다.
예를 들어, 게시판에 글을 작성하거나 로그인 정보를 보낼 때처럼 데이터를 서버로 전송하는 경우에 사용됩니다.

요청 예시:

POST /posting HTTP/1.1
Host: example.com

{
  "title": "오늘도 즐거운 날입니다",
  "contents": "재미있는 글 보고 가세요~"
}

 

  • POST는 메시지 본문(body)에 데이터를 담아 전송합니다.
  • 서버는 이를 처리하여 새 자원을 생성하거나, 특정 로직을 수행합니다.

 

4. PUT — “덮어써주세요”

PUT은 전체 자원을 새 데이터로 완전히 대체할 때 사용됩니다.
즉, 기존 자원이 있다면 새 내용으로 덮어쓰고, 없으면 새로 생성합니다.

요청 예시:

PUT /posting HTTP/1.1
Host: example.com

{
  "id": 1,
  "title": "수정된 제목입니다",
  "contents": "내용이 변경되었습니다"
}

 

PUT은 전체 데이터를 갱신하므로, 전체 자원의 최신 상태를 전달해야 합니다.

 

5. PATCH — “일부만 수정해주세요”

PATCH는 PUT과 달리 일부 속성만 수정할 때 사용됩니다.
예를 들어 제목만 바꾸고 싶을 때 전체 데이터를 보낼 필요 없이 수정할 부분만 전송합니다.

요청 예시:

PATCH /posting/1 HTTP/1.1
Host: example.com

{
  "title": "수정된 제목입니다"
}
  • 효율적으로 자원의 일부분만 변경할 수 있습니다.
  • PUT과 달리 나머지 필드는 그대로 유지됩니다.

 

6. DELETE — “삭제해주세요”

DELETE는 지정된 자원을 서버에서 삭제하도록 요청할 때 사용됩니다.

요청 예시:

DELETE /texts/a.txt HTTP/1.1
Host: example.com

이 요청은 서버에게 /texts/a.txt 파일을 삭제하라는 의미입니다.

 

주요 HTTP 메서드 요약표

메서드 설명
GET 자원을 조회하기 위한 메서드
HEAD GET과 동일하지만, 헤더만 요청
POST 서버에 새로운 작업을 요청(예: 데이터 생성)
PUT 자원을 통째로 교체 또는 새로 생성
PATCH 자원의 일부를 수정
DELETE 자원을 삭

이 외에도,

  • CONNECT: 서버와의 양방향 연결(터널) 생성
  • OPTIONS: 지원하는 메서드 목록 조회
  • TRACE: 요청 경로를 추적해 테스트

 

 

정리하면

 

HTTP 메서드는 단순히 “데이터 요청 방식”이 아니라,
서버와 클라이언트 간 의사소통 규칙(프로토콜의 행동 약속) 입니다.

즉, “무엇을” 요청하는지가 아니라 “어떤 의도로 요청하는가”를 명확히 표현하는 도구이죠.
RESTful API 설계에서도 이 메서드들이 표준적인 행동을 정의하는 핵심이 됩니다.