HTTP 메서드
HTTP 메서드는 웹에서 클라이언트가 서버에게 무엇을 해달라고 요청하는지를 나타내는 방식 입니다.
조금 더 자세하게 설명하자면, 클라이언트 - 서버 구조에서 요청(Request)과 응답(Response)이 이루어지는 방식을 의미합니다.
서버가 수행해야 할 동작을 지정해서 요청을 보내는 방법 정도로 정리 할 수 있겠습니다.
그렇다면 왜 HTTP 메서드를 사용할까요? 그 이유는 자원과 내가 하려는 동작을 분리하기 위함입니다.
HTTP 메서드를 통해 서버가 수행해야 할 동작을 지정하게 되면 URI는 리소스만 식별하면 되기 때문입니다.
HTTP 메서드의 종류는 총 8가지 입니다. 우리는 보통 그중에서 GET, PUT, POST, DELETE 등 4~5가지를 주로 사용합니다.

1. GET
서버에 있는 자원(데이터)를 읽어오기 위한 메서드 입니다.
클라이언트가 요청하면 서버는 해당 데이터를 응답으로 전달하게 됩니다.
특징
- 데이터를 변경하지 않음
- 데이터를 body에 담을 수 없고 URL에 쿼리스트링으로 파라미터 전달이 가능
- 브라우저에서 주소창에 입력 가능
- 캐싱이 가능하여 빠르게 동작 할 수 있음
- 멱등성이 있음
즉 한마디로 "나 이 데이터 줘"하는 메서드 입니다.

2. POST
클라이언트가 서버에 새로운 데이터를 추가하려고 할 때 사용하는 메서드 입니다.
특징
- Body에 데이터를 쿼리 파라미터 형식으로 담아서 전송
- 서버는 요청을 받아서 데이터를 생성
- 동일한 요청을 여러번 보내면 중복 생성 될 수 있음
- 멱등성이 없음
즉 한마디로 "나 이 데이터 추가할래"하는 메서드 입니다.

3. PUT
자원 전체를 수정하거나 새로 만들 때 사용하는 메서드 입니다.
특징
- 클라이언트가 보내는 데이터로 기존 리소스를 완전히 대체
- 없으면 새로 만들기도 함
- 부분 수정이 불가
- 멱등성이 있음
즉 "나 이 데이터 이걸로 덮어씌울래"하는 메서드 입니다.

3-1. PATCH
자원을 일부분만 수정 할 때 사용하는 메서드 입니다.
특징
- 보통 PUT 메서드보다 데이터 양이 적고 목적이 명확합니다.
- 멱등성이 있음
즉 "여기만 바꿀래"하는 메서드 입니다.
4. DELETE
서버에 있는 리소스를 삭제할 때 사용하는 메서드 입니다.
특징
- 서버에 해당 리소스를 없애달라고 요청
- 멱등성이 있음
즉 "이거 지울래"하는 메서드 입니다.

HTTP 메서드는 클라이언트가 서버에게 어떤 동작을 명확히 지정해주는 수단입니다.
웹 통신에서 가장 기초적이고 핵심적인 개념이라고 말 할 수 있습니다.
클라이언트가 어떤 요청을 보낼 때 그냥 URL로만 지정하는 것이 아니라
그 URL에 대해 어떤 작업을 하기를 원하는지를 HTTP 메서드를 통해 함께 전달하게 됩니다.
이를 통해서 서버는 클라이언트가 원하는 동작이 데이터를 조회하려는 것인지,
새로 생성하려는 것인지 등등을 정확하게 알고 처리 할 수 있습니다.
위에 설명한 것처럼 HTTP 메서드는 각각의 목적에 따라 하는 역할이 명확하게 나뉘게 되고
RESTful API 설계에서 메서드에 따라 의미있는 요청 구조를 설계 할 수 있게 해줍니다.
즉 HTTP 메서드는 단순한 요청 방식일 뿐만 아니라,
웹 애플리케이션의 동작의미를 명확히 전달하고 설계의 표준을 정립하는 중요한 요소라고 할 수 있습니다.
_______모르는 단어 정리_______
멱등성 (Idempotency): 같은 요청을 여러 번 보내도 결과가 같음을 의미합니다.
쿼리스트링 (Query String): URL에 붙는 추가 정보로, ? 뒤에 키=값 형식으로 나타납니다.
예) https://example.com/search?keyword=apple&sort=price
파라미터 (Parameter): 서버에 전달하는 값(데이터)으로, 다양한 방식으로 보낼 수 있습니다.
HTTP의 상태코드
HTTP 메서드를 사용 한 후에는 그 결과를 알려주기 위해 상태코드를 알려주게 됩니다.
상태 코드에는 다양한 종류가 있는데, 보통 다섯가지 그룹(100 ~ 599)으로 나누어지게 됩니다.
1XX (정보)
- 100 (continue) - 클라이언트가 요청을 계속해도 됨
- 101 (Switching Protocols) - 서버가 프로토콜을 바꿈
- 102 (Processing) - 요청은 처리 중 (멀티 요청 처리 시 사용)
- 103 (Early Hints) - 브라우저가 자원을 미리 preload 할 수 있게 함
대부분 직접 구현하지 않고 브라우저나 프록시 레벨에서 쓰입니다.
요청을 받았고, 계속 처리 중임을 알려주는 정보성 응답입니다.
2XX (성공)
- 200 (OK) - 일반적인 성공
- 201 (Created) - 리소스가 성공적으로 생성됨
- 204 (No Content) - 성공했지만 응답 본문 없음
- 206 (Partial Content) - 범위 지정 응답
요청이 성공적으로 처리됨을 나타내는 정상 응답
3XX (리다이렉션)
- 301 (Moved Permanently) - 리소스가 영구적으로 이동됨
- 302 (Found) - 임시 리다이렉션
- 303 (See Other) - 리소스를 다른 URL에서 GET으로 요청하라고 명시
- 304 (Modified) - 캐시된 데이터가 최신이므로 재전송 불필요
리다이렉션이란 클라이언트가 요청한 URL이 변경되어, 다른 URL로 자동 이동하도록 서버가 응답하는 것 이고
이 상태 코드는 리소스 위치가 바뀌었으니 다른 URL로 이동하라는 리다이렉션 응답입니다.
API에서는 잘 안 쓰지만, 웹사이트 전환/SEO/브라우저 캐시 최적화에 매우 중요합니다.
4XX (클라이언트 오류)
- 400 (Bad Request) - 잘못된 요청 (형식 오류, 파라미터 누락 등)
- 401 (Unauthorized) - 인증되지 않음
- 403 (Forbidden) - 권한 없음
- 404 (Not Found) - 리소스를 찾을 수 없음

클라이언트의 요청에 문제가 있음을 나타내는 오류 응답입니다.
이 그룹은 프론트엔드와 API 설계에서 가장 중요하게 다루게 됩니다.
5XX (서버 오류)
- 500 (Internal Server Error) - 서버 내부 코드 오류
- 502 (Bad Gateway) - 서버가 외부 시스템(API)에서 잘못된 응답을 받음
- 503 (Service Unavailable) - 서버 과부하, 유지보수 등으로 일시 중단
- 504 (Gateway Timeout) - 서버가 외부 시스템 응답을 너무 오래 기다림
서버 내부의 문제로 요청 처리 실패를 나타내는 서버 오류 응답입니다.
클라이언트가 고칠 수 없는 문제이기 때문에 백엔드에서 로그/에러 모니터링 필수입니다.
HTTP의 상태코드는 웹 통신에서 클라이언트와 서버가 요청, 응답을 주고받을 때,
그 결과를 명확하게 나타내어 주는 중요한 수단입니다. 서버는 이 상태코드를 통해
성공했는지, 실패했는지, 혹은 추가적인 조치가 필요한지에 대해 숫자로 전달하게 되고
클라이언트는 이를 바탕으로 적절한 동작을 취할 수 있습니다.
이러한 상태 코드는 디버깅이나 에러 처리 과정에서 문제의 원인을 신속히 파악하는 데 도움이 되며
클라이언트의 인증 및 권한 검증에도 중요한 역할을 하게 됩니다.
특히 RESTfful API 설계에서는 HTTP 메서드의 상태 코드의 조합을 통해 동작을 명확히 정의하므로
상태 코드는 API 설계의 핵심 요소라고 할 수 있습니다.
_______모르는 단어 정리_______
리다이렉션 (Redirection): 클라이언트가 요청한 URL이 변경되어 다른 URL로 자동 이동하도록 서버가 응답하는 것
쉽게 말하면 "여기 주소 이제 아니니까 저 주소로 가세요!"하면서 서버가 클라이언트에게 새로운 주소를 알려주는 것 입니다.
프리로드 (Preload): 웹 페이지가 본격적으로 렌더링되기 전에, 미리 필요한 리소스(CSS, JS, 이미지 등)를 브라우저가
준비하도록 힌트를 주는 기능
쉽게 말하자면 "이거 곧 쓸 거니까 미리 받아놔!"하는 기능 입니다.
이상으로 블로그를 마치겠습니다. 읽어주셔서 감사합니다.
'Network' 카테고리의 다른 글
| [Network] IP/TCP 그리고 UDP 무엇이고 차이점이 뭘까? (0) | 2025.05.06 |
|---|---|
| [Network] OSI 7계층, 무엇일까? (0) | 2025.04.27 |
| [Network] 백엔드? http? 무엇이고 어떤 연관이 있는가 (0) | 2025.04.13 |