Overview
웹 개발이나 API 통신에서 HTTP는 필수적인 기반이며, 이 중에서도 HTTP 메서드(Method)는 클라이언트가 서버에게 어떤 동작을 요청할지를 명확히 전달하는 수단이다.
GET
, POST
, PUT
, DELETE
와 같은 대표적인 메서드는 각각의 역할이 명확하게 정의되어 있으며, RESTful API 설계에서도 핵심 요소로 사용된다.
또한, 클라이언트의 요청에 대한 서버의 응답 결과를 표현하는 HTTP 상태 코드(Status Code)는 요청이 성공했는지, 오류가 있었는지, 혹은 추가 조치가 필요한지를 알려주는 중요한 수단이다.
이 글에서는 HTTP의 다양한 메서드와 그 특징, 용도, 그리고 자주 사용되는 상태 코드를 정리하며, 실무에서의 활용 맥락까지 함께 살펴본다.

📅 관련 글
2023.01.13 - [CS 지식] - [CS 지식1.] 웹 브라우저의 동작원리
2023.02.23 - [CS 지식] - [CS 지식2.] DNS의 동작원리(Domain Name System)
2023.03.06 - [CS 지식] - [CS 지식3.] HTTP / HTTPS 란?
2023.03.07 - [CS 지식] - [CS 지식4.] OSI 7계층 & TCP/IP 4계층이란?
2023.03.17 - [CS 지식] - [CS 지식5.] 가상화란?
2023.05.24 - [CS 지식] - [CS 지식6.] HTTP 메서드(Method)란? / HTTP Status Code
2023.12.05 - [CS 지식] - [CS 지식7.] Kubernetes 구성요소와 Pod 생성 방식이란?
2023.12.19 - [CS 지식] - [CS 지식8.] 프로세스(Process)와 스레드(Thread)란?
2023.12.30 - [CS 지식] - [CS 지식9.] 클라우드 컴퓨팅이란?(Public & Private Cloud / IaaS SaaS PaaS / Multitenancy)
2024.01.05 - [CS 지식] - [CS 지식10.] 웹1.0(Web1.0) vs 웹2.0(Web2.0) vs 웹3.0(Web3.0)
2024.02.02 - [CS 지식] - [CS 지식11.] NAT(Network Address Translation)란?
2024.05.22 - [CS 지식] - [CS 지식13.] 동기 및 비동기 처리란?
2024.05.23 - [CS 지식] - [CS 지식14.] 3tier 아키텍처란?
2024.08.28 - [CS 지식] - [CS 지식15.] SSR vs CSR vs ISR vs SSG
2024.11.09 - [CS 지식] - [CS 지식16.] stdin(표준입력) vs stdout(표준출력) vs stderr(표준에러)
2024.11.11 - [CS 지식] - [CS 지식17.] IPsec vs SSL/TLS
2024.11.22 - [CS 지식] - [CS 지식18.] Quantum Computing(양자 컴퓨팅)
HTTP 메서드(Method)란?
HTTP 메서드는 클라이언트가 웹 서버에게 어떤 종류의 동작을 원하는지를 나타내는 방법이다.
각 메서드는 특정한 종류의 작업을 수행하도록 설계되었다.

GET
주로 서버에서 정보를 조회할 때 사용한다. (Get)
GET 요청은 데이터를 변경하거나 생성하는 데 사용되지 않으며, 오직 데이터를 읽는 데만 사용된다.
POST
주로 서버에 리소스를 추가할 때 사용한다. (Create)
클라이언트가 서버의 리소스를 생성하려고 할 때 사용한다.
POST 요청은 서버에게 데이터를 보내고, 그 데이터를 사용해서 새로운 리소스를 생성하거나 기존 리소스를 업데이트하라는 요청을 한다.
HEAD
GET 요청과 거의 유사하지만, 실제 본문의 내용 없이 HTTP 헤더 정보만을 반환한다. (No Body)
response에 Body가 없다.
리소스를 가져오지 않고도 그에 대한 정보를 얻을 수 있어 효율적이다.

PUT
특정 URL에 대응하는 리소스의 전체 내용을 갱신하는 데 사용한다. (Update)
만약 해당 URL에 리소스가 이미 존재한다면 PUT 요청은 그 리소스를 새로운 것으로 대체하고, 만약 리소스가 존재하지 않는다면 새로운 리소스를 생성한다.
DELETE
특정 리소스를 제거하는 데 사용된다.
DELETE 요청은 성공했을 때 보통 응답 본문에 데이터를 포함하지 않는다.
PATCH
리소스의 부분적인 변경을 적용하는 데 사용된다.
PATCH 요청은 일부만 변경하기 때문에 PUT 요청보다 더 효율적일 수 있다.
OPTIONS
리소스가 지원하는 메서드의 종류를 확인하는 데 사용된다.
OPTIONS 요청은 "Allow"라는 헤더와 함께 해당 리소스에서 사용 가능한 HTTP 메서드 목록을 반환한다.
TRACE
주로 진단 목적으로 사용된다.
TRACE 요청은 클라이언트에서 서버로 전송되며, 이 과정에서 어떤 변경이나 추가가 이루어지는지를 확인하는데 사용될 수 있다. TRACE 요청이 서버에 도달하면, 서버는 요청을 그대로 응답 본문으로 반환한다.
이를 통해 클라이언트는 요청이 어떻게 처리되었는지 확인할 수 있다.
CONNECT
주로 네트워크 터널을 만드는 데 사용된다. 가장 흔한 예는 HTTPS 통신을 위한 SSL 터널이다.
클라이언트가 CONNECT 메서드를 사용하면, 웹 서버는 목적지 서버와의 네트워크 연결을 설정하고, 클라이언트와 목적지 서버 사이에서 데이터를 릴레이하게 된다.

HTTP 메서드 비교 요약표
메서드 | 목적 / 기능 | 본문 사용 | 안전성 | 멱등성 | 주 사용 용도 |
GET | 리소스 조회 | ❌ | ✅ | ✅ | 데이터 조회 (읽기) |
POST | 리소스 생성 | ✅ | ❌ | ❌ | 새 리소스 생성, 서버로 데이터 전송 |
PUT | 리소스 전체 수정 또는 생성 | ✅ | ❌ | ✅ | 전체 갱신 또는 대체 |
PATCH | 리소스 일부 수정 | ✅ | ❌ | ❌ | 리소스 일부 필드만 수정 |
DELETE | 리소스 삭제 | ❌ | ❌ | ✅ | 리소스 삭제 요청 |
HEAD | 리소스의 헤더만 요청 | ❌ | ✅ | ✅ | 상태 확인, 빠른 체크 |
OPTIONS | 사용 가능한 메서드 확인 | ❌ | ✅ | ✅ | 사전 요청 (CORS 등) |
TRACE | 요청 경로 추적 (디버깅 용도) | ❌ | ❌ | ✅ | 요청이 어떻게 도달했는지 확인 |
CONNECT | 네트워크 터널 생성 (HTTPS 프록시 등) | ✅ | ❌ | ❌ | SSL 터널링 |
💡 안전성(Safe): 서버의 상태를 변경하지 않음
💡 멱등성(Idempotent): 같은 요청을 여러 번 보내도 같은 결과를 반환
HTTP Status Code

HTTP 상태 코드(HTTP Status Code)는 HTTP 응답에서 서버가 클라이언트에게 요청 처리의 결과를 전달하는 방법이다. 이 코드는 세 자리 숫자로 구성되며, 각각이 의미하는 바는 다음과 같다.
1xx (Informational): 요청이 수신되었고 프로세스가 계속되는 중임을 나타낸다.
2xx (Successful): 요청이 성공적으로 수신, 이해, 그리고 수용되었음을 나타낸다. 가장 일반적인 코드는 200 OK
로, 요청이 성공적으로 처리되었음을 나타낸다.
3xx (Redirection): 클라이언트는 요청을 완료하기 위해 추가 동작을 취해야 함을 나타낸다. 예를 들어, 301 Moved Permanently
는 요청한 리소스의 URI가 변경되었음을 나타내며, 새로운 URI를 클라이언트에게 제공한다.
4xx (Client Error): 클라이언트의 요청이 잘못되었거나 완료할 수 없음을 나타낸다. 가장 흔히 볼 수 있는 코드는 404 Not Found
로, 요청한 리소스를 서버에서 찾을 수 없을 때 반환된다.
5xx (Server Error): 서버가 유효한 요청을 처리하는 데 실패했음을 나타낸다. 500 Internal Server Error
는 서버에 문제가 있음을 나타내는 가장 일반적인 코드이다.

HTTP 상태 코드 요약표
상태 코드 범위 | 의미 | 대표 예시 |
1xx | 정보 응답 | 100 Continue, 101 Switching Protocols |
2xx | 성공 | 200 OK, 201 Created, 204 No Content |
3xx | 리다이렉션 | 301 Moved Permanently, 302 Found |
4xx | 클라이언트 오류 | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
5xx | 서버 오류 | 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable |
REST API 설계 가이드 요약
RESTful API는 리소스를 명확하게 표현하고, HTTP 메서드를 올바르게 활용하는 것이 핵심이다.
리소스 설계
/users
→ 사용자 전체/users/{id}
→ 특정 사용자 (예:/users/42
)
메서드에 따른 동작 설계
HTTP 메서드 | URL 예시 | 설명 |
GET | /posts/1 |
게시글 조회 |
POST | /posts |
게시글 생성 |
PUT | /posts/1 |
게시글 전체 수정 |
PATCH | /posts/1 |
게시글 일부 필드만 수정 |
DELETE | /posts/1 |
게시글 삭제 |
기타 설계 팁
- 명사 기반 URI 사용:
/users
,/products
- 행위를 URI가 아닌 메서드로 표현:
POST /users/login
은 가능하지만GET /deleteUser
는 비권장 - HTTP 상태 코드 적극 활용:
201 Created, 204 No Content, 400 Bad Request
등 - 필요한 경우 쿼리 파라미터 활용:
/posts?author=kim&page=2
마무리
HTTP 메서드와 상태 코드는 단순한 기술 문법을 넘어, 서버와 클라이언트 간의 의사소통 약속이자 웹 아키텍처의 핵심 원칙이다.
이러한 메서드의 의미와 차이를 정확히 이해하고, 상황에 맞는 메서드를 적절히 사용하는 것이 API 설계와 디버깅, 보안 대응, 성능 최적화 등에 매우 중요하다.
특히 RESTful API나 GraphQL 같은 API 설계에서, GET과 POST만 사용하는 경우보다 PUT, PATCH, DELETE를 적절히 활용하면 보다 명확하고 직관적인 인터페이스를 만들 수 있다.
또한, 서버로부터의 응답 상태를 의미하는 HTTP 상태 코드는 문제를 빠르게 진단하고, 사용자에게 적절한 메시지를 전달하는 데 핵심적인 역할을 한다.
💡 “HTTP 메서드를 아는 것”에서 나아가, 언제, 왜, 어떻게 사용하는가를 이해하는 것이 진정한 실력이다.
Reference
https://incheol-jung.gitbook.io/docs/q-and-a/computer-science/http-method
https://velog.io/@ellyheetov/REST-API
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
https://medium.com/@lyhlg0201/http-method-d561b77df7
'CS 지식' 카테고리의 다른 글
[CS 지식8.] 프로세스(Process)와 스레드(Thread)란? (1) | 2023.12.27 |
---|---|
[CS 지식7.] Kubernetes 구성요소와 Pod 생성 방식이란? (2) | 2023.12.18 |
[CS 지식5.] 가상화란? (2) | 2023.03.17 |
[CS 지식4.] OSI 7계층 & TCP/IP 4계층이란? (0) | 2023.03.07 |
[CS 지식3.] HTTP / HTTPS 란? (0) | 2023.03.07 |