for Developer

HTTP Method와 응답코드

Dev:P 2022. 1. 30. 17:41
반응형
오늘은 HTTP 메서드와 응답 코드에 대해 가볍게 배워보는 시간을 가져보겠습니다.

HTTP 메소드란?

클라이언트가 웹서버에게 요청을 보낼 때, 그 목적이나 종류를 웹서버에게 명시하는 방식입니다.

메서드의 종류는 아래와 같습니다.

Method 설명
GET 특정 리소스의 표시를 요청합니다.
GET을 사용하는 요청은 클라이언트가 웹 서버로부터 오직 데이터를 받는데만 사용됩니다.
POST 특정 리소스에 엔티티르 제출할 때 사용됩니다.
보통 클라이언트에서 입력한 정보를 저장하기 위해 웹 서버로 요청을 보낼때 사용됩니다.
PUT 해당 메서드는 목적 리소스의 모든 현재 표시를 요청 payload로 대체합니다.
즉, 목적 리소스가 이미 존재한다면 이를 PUT요청으로 전달된 payload로 완전히 대체하고 리소스가 존재하지 않는다면 새로 생성합니다.
PATCH 리소스의 일부만을 수정하는데 사용됩니다.
PUT 요청과는 다르게 전체를 대체하지 않고 리소스중 변경을 희망하는 일부에 대해서만 변경(update)을 진행합니다.
DELETE 특정 리소스를 삭제하는데 사용됩니다.
HEAD GET 메서드 요청과 동일한 응답을 웹 서버에게 요구하지만, 응답 본문은 포함하지 않습니다.
즉, 요청에 대한 body없이 헤더와 상태 줄만 반환됩니다.
CONNECT 목적 리소스로 식별되는 서버로의 터널을 설정합니다.
주로 Proxy를 요청할 때 사용됩니다.
OPTIONS 목적 리소스의 통신을 설정할때 사용됩니다.
주로 웹서버에서 지원하는 메소드를 확인하기 위해 사용되는 메소드입니다.
TRACE (en-US) 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 하는데 사용됩니다.
즉, 요청 리소스에 대한 모든 경로를 보여달라는 요청인데 보안상의 이유로 보통 사용되지 않게 막아둡니다.

CRUD에 대응되는 HTTP Method 도식화


HTTP 메서드 별 속성

HTTP 메서드의 속성으로는 요청/응답의 Body 유무, Safe(안전성), Idempotent(멱등성), Cacheable(캐시 가능성)이 있습니다.

요청/응답의 Body 유무는 따로 설명이 필요 없을 것으로 보이고 나머지 3가지 속성에 대해 알아보겠습니다.

  • Safe: 계속해서 메서드를 호출해도 리소스를 변경시키지 않는다. (즉, 데이터를 생성, 수정, 삭제하지 않는다)
  • Idempotent: 동일한 요청을 여러 번 보내도 한 번 보낸 것과 같음을 보장하는 것. 제대로 구현된 GET, PUT, DELETE 메서드는 멱등성을 가져야 한다.
  • Cacheable: 단어 그대로 데이터를 캐싱해서 효율적으로 가져올 수 있는지에 대한 여부를 뜻합니다.

HTTP 응답 상태 코드

클라이언트의 요청에 대한 웹 서버의 처리 상태를 알려주기 위한 코드값을 의미하며 보통 100~500번대를 사용합니다.

각 코드별 자세한 의미를 하나하나 살펴보기보단 코드 대역 별로 무엇을 의미하는지 알아보겠습니다.

  • 1xx (Informational):  요청이 수신되었으며 웹 서버의 프로세스가 진행되는 중입니다.
  • 2xx (Successful): 요청이 정상적으로 수신되었으며 처리 또한 정상처리되었습니다.
  • 3xx (Redirection): 요청에 대한 완료를 위해 추가 작업이 필요합니다.
  • 4xx (Client Error): 클라이언트의 오류, 잘못된 문법으로 요청되는 등의 이유로 서버가 요청을 수행할 수 없습니다.
  • 5xx (Server Error): 서버 오류, 웹 서버의 프로세스가 진행됨에 있어 정상 처리되지 못하였습니다.

 

참고

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

반응형