HTTP Method와 Status Code

parkrootseok·2025년 4월 16일

네트워크

목록 보기
9/10
post-thumbnail

HTTP Method란?

HTTP Method는 요청이 어떤 작업을 수행하기 위함인지 명시하기 위해 사용합니다. 대표적인 Method로는 Get, Post, Put, Path, Delete가 있습니다.

Method 종류와 특징

GET

GET 메소드는 클라이언트가 서버에게 리소스를 요청할 때 사용하는 메소드입니다. 또한, 이전에 GET 요청을 수행한 결과는 브라우저 히스토리에 저장되어 이후 동일한 요청은 캐싱이 가능합니다.

POST

POST 메소드는 클라이언트가 서버에게 데이터 생성을 요청할 때 사용하는 메소드입니다. POST 요청의 경우 전달할 데이터를 Body에 포함하여 전달하며 브라우저 히스토리에 남지 않아 캐싱이 불가능합니다.

PUT

PUT 메소드는 클라이언트가 서버에게 리소스 전체를 대체(덮어쓰기)하거나 해당 리소스가 없으면 생성을 요청할 때 사용하는 메소드입니다.

PATCH

PUT 메소드는 클라이언트가 서버에게 리소스의 일부분 수정을 요청할 때 사용하는 메소드입니다.

멱등성이란?

멱등성이란 같은 요청을 여러 번 보내더라도 결과가 동일한 성질을 의미합니다. 즉, 클라이언트가 같은 요청을 1번 보내든, 100번 보내든 서버의 상태나 응답 결과가 한 번 보낸 것과 같다면, 멱등하다고 할 수 있습니다.

HTTP Method와 멱등성

HTTP Method에 대한 멱등성 여부는 다음과 같습니다.

  • 멱등성을 가지는 Method
    • Get : 같은 리소스를 여러 번 조회해도 결과 동일
    • Put : 동일한 리소스에 계속 덮어쓰므로 결과 동일
    • Delete : 이미 삭제된 리소스는 다시 삭제해도 결과 동일
  • 멱등성을 가지지 않는 Method
    • Post : 중복 생성이 발생할 수 있으므로 결과가 동일하지 않음
    • Patch : 일부 필드만 수정하므로, 반복 호출 시 결과가 동일하지 않음
      • 단, 계속 동일한 값 수정 요청시 멱등할 수 있음
      • 예를 들어, name을 Alice로 고정해서 계속 수정 요청하는 경우

HTTP Status Code란?

HTTP Status Code는 클라이언트가 보낸 요청에 대한 서버의 응답 코드로 요청의 성공과 실패 여부를 판단하기 위한 정보입니다. 100번대부터 500번대까지 총 5개의 클래스로 구분되어 요청에 대한 상태를 알려줍니다.

1XX (정보) : 요청을 받았으며 작업을 계속 수행

2XX (성공) : 요청을 성공적으로 처리했음

  • 200 (OK) : 요청 성공
  • 201 (Created) : 리소스 생성 성공

3XX (리다이렉션) : 요청을 완료하기 위해 추가 작업 조치 필요

4XX (클라이언트 오류) : 클라이언트 요청에 문제가 있음

  • 400 (Bad Request) : 데이터 형식이 올바르지 않음
  • 401 (Unauthorized) : 인증 필요
  • 403 (Forbidden) : 권한 없음
  • 404 (Not Found) : 존재하지 않는 리소스

5XX (서버 오류) : 서버가 유효한 요청의 수행을 실패

  • 500 (Bad Gateway) : 예상하지 못한 오류 발생

예상 질문

HTTP Method란?

요청이 무슨 작업을 수행하기 위함인지 표시하기 위한 수단.

Get

  • 리소스 조회
  • 멱등함

Post

  • 리소스 생성
  • 멱등하지 않음

Put

  • 리소스 전체 덮어쓰기 또는 없으면 생성
  • 멱등함

Patch

  • 기존 리소스를 유지한 채 수정
  • 멱등하지 않음

Delete

  • 리소스 삭제
  • 멱등함

멱등성이란?

요청을 1번 보내던 100번 보내던 동일한 결과가 나오는 상태를 유지하는가에 대한 여부

HTTP Status Code는 무엇인가요?

요청에 대한 처리 상태 확인

5개의 클래스로 구분

  • 100
    • 정보 전달 관련
  • 200
    • 성공 관련
  • 300
    • 리다이렉션 관련
  • 400
    • 클라이언트에 의한 실패 관련
  • 500
    • 서버에 의한 실패 관련
profile
동료들의 시간과 노력을 더욱 빛내줄 수 있는 개발자가 되고자 노력합니다.

0개의 댓글