Dev/CS

[Web] HTTP Method

망고밥먹는쿼카 2022. 4. 16. 22:33

📌 HTTP 메서드 종류

- 주요 메서드

  • GET: 리소스 조회
  • POST: 요청 데이터 처리, 주로 등록에 사용
  • PUT: 리소스를 대체, 해당 리소스가 없으면 생성
  • PATCH: 리소스 부분 변경
  • DELETE: 리소스 삭제

 

- 기타 메서드

  • HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
  • OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
  • CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정
  • TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행

cf) CONNECT, TRACE는 거의 사용 안함

 

 

GET

  • 리소스 조회
  • 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
  • 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않음

 

POST

  • 요청 데이터 처리
  • 메시지 바디를 통해 서버로 요청 데이터 전달
  • 서버는 요청 데이터를 처리
  • 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
  • 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용

 

PUT

  • 리소스를 대체
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 쉽게 이야기해서 덮어버림
  • 중요! 클라이언트가 리소스를 식별
    • 클라이언트가 리소스 위치를 알고 URI 지정
    • POST와 차이점임

 

PATCH

  • 리소스 부분 변경

 

DELETE

  • 리소스 제거

 

📌 HTTP 메서드 종류

  • 안전(Safe Methods)
  • 멱등(Idempotent Methods)
  • 캐시가능(Cacheable Methods

 

- HTTP 메서드 요약 테이블

HTTP 메소드 RFC 요청에 Body가 있음 응답에 Body가 있음 안전 멱등 캐시 가능
GET RFC 7231 아니요
HEAD RFC 7231 아니요 아니요
POST RFC 7231 아니요 아니요
PUT RFC 7231 아니요 아니요
DELETE RFC 7231 아니요 아니요 아니요
CONNECT RFC 7231 아니요 아니요 아니요
OPTIONS RFC 7231 선택 사항 아니요
TRACE RFC 7231 아니요 아니요
PATCH RFC 5789 아니요 아니요

 

안전(Safe)

호출해도 리소스를 변경하지 않는다.

 

멱등(Idempotent)

한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다.

 

캐시가능(Cacheable)

응답 결과 리소스를 캐시해서 사용해도 되는가?

 


개인 학습 기록용이기 때문에 오류가 있을 수 있습니다.

양해 부탁드립니다🙂

 

📚 출처

김영한 <모든 개발자를 위한 HTTP 웹 기본 지식>

https://ko.wikipedia.org/wiki/HTTP