CS 지식

[CS 지식6.] HTTP 메서드(Method)란? / HTTP Status Code

Somaz 2023. 5. 25. 20:56
728x90
반응형

Overview

 

웹 개발이나 API 통신에서 HTTP는 필수적인 기반이며, 이 중에서도 HTTP 메서드(Method)는 클라이언트가 서버에게 어떤 동작을 요청할지를 명확히 전달하는 수단이다.

 

GET, POST, PUT, DELETE 와 같은 대표적인 메서드는 각각의 역할이 명확하게 정의되어 있으며, RESTful API 설계에서도 핵심 요소로 사용된다.

또한, 클라이언트의 요청에 대한 서버의 응답 결과를 표현하는 HTTP 상태 코드(Status Code)는 요청이 성공했는지, 오류가 있었는지, 혹은 추가 조치가 필요한지를 알려주는 중요한 수단이다.

 

 

이 글에서는 HTTP의 다양한 메서드와 그 특징, 용도, 그리고 자주 사용되는 상태 코드를 정리하며, 실무에서의 활용 맥락까지 함께 살펴본다.

출처 : https://www.youtube.com/watch?app=desktop&v=tkfVQK6UxDI

 

 

 

 

 

 

📅 관련 글

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 메서드는 클라이언트가 웹 서버에게 어떤 종류의 동작을 원하는지를 나타내는 방법이다.

각 메서드는 특정한 종류의 작업을 수행하도록 설계되었다.

 

출처 : https://xmfpes.github.io/web-network/network-http/

 

 

GET

주로 서버에서 정보를 조회할 때 사용한다. (Get)

GET 요청은 데이터를 변경하거나 생성하는 데 사용되지 않으며, 오직 데이터를 읽는 데만 사용된다. 

 

 

POST

주로 서버에 리소스를 추가할 때 사용한다. (Create)

클라이언트가 서버의 리소스를 생성하려고 할 때 사용한다.

POST 요청은 서버에게 데이터를 보내고, 그 데이터를 사용해서 새로운 리소스를 생성하거나 기존 리소스를 업데이트하라는 요청을 한다.

 

 

HEAD

GET 요청과 거의 유사하지만, 실제 본문의 내용 없이 HTTP 헤더 정보만을 반환한다. (No Body)

response에 Body가 없다.

리소스를 가져오지 않고도 그에 대한 정보를 얻을 수 있어 효율적이다.

 

출처 : https://twitter.com/b0rk/status/1161679906415218690

 

 

PUT

특정 URL에 대응하는 리소스의 전체 내용을 갱신하는 데 사용한다. (Update)

만약 해당 URL에 리소스가 이미 존재한다면 PUT 요청은 그 리소스를 새로운 것으로 대체하고, 만약 리소스가 존재하지 않는다면 새로운 리소스를 생성한다.

 

 

DELETE

특정 리소스를 제거하는 데 사용된다.

DELETE 요청은 성공했을 때 보통 응답 본문에 데이터를 포함하지 않는다.

 

 

PATCH

리소스의 부분적인 변경을 적용하는 데 사용된다.

PATCH 요청은 일부만 변경하기 때문에 PUT 요청보다 더 효율적일 수 있다.

 

 

OPTIONS

리소스가 지원하는 메서드의 종류를 확인하는 데 사용된다.

OPTIONS 요청은 "Allow"라는 헤더와 함께 해당 리소스에서 사용 가능한 HTTP 메서드 목록을 반환한다.

 

 

TRACE

주로 진단 목적으로 사용된다.

TRACE 요청은 클라이언트에서 서버로 전송되며, 이 과정에서 어떤 변경이나 추가가 이루어지는지를 확인하는데 사용될 수 있다. TRACE 요청이 서버에 도달하면, 서버는 요청을 그대로 응답 본문으로 반환한다.

이를 통해 클라이언트는 요청이 어떻게 처리되었는지 확인할 수 있다.

 

 

CONNECT

주로 네트워크 터널을 만드는 데 사용된다. 가장 흔한 예는 HTTPS 통신을 위한 SSL 터널이다.

클라이언트가 CONNECT 메서드를 사용하면, 웹 서버는 목적지 서버와의 네트워크 연결을 설정하고, 클라이언트와 목적지 서버 사이에서 데이터를 릴레이하게 된다.

 

출처 : https://twitter.com/b0rk/status/1161679906415218690

 

 

 

 

 

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는 서버에 문제가 있음을 나타내는 가장 일반적인 코드이다.

출처 : https://www.automatedtestingwithtuyen.com/post/http-status-codes

 

 

 

 

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

 

 

728x90
반응형