TIL 2024.01.09 HTTP Method

손창현·2024년 1월 9일
0

TIL

목록 보기
15/15

HTTP Method는 무엇일까?

MDN Web 문서에 따르면 정의는 아래와 같다.

HTTP Method는 자원에 대해 수행할 원하는 작업을 나타내는 요청 메서드의 집합이다.
-MDN

HTTP request methods - HTTP | MDN

어떤 리소스(자원)에 대해서 원하는 행위를 할 수 있도록 모아놓은 요청 메서드의 집합이라고도 볼 수 있다.

그러면 리소스는 무엇이고 행위는 무엇입니까?

먼저 리소스는 무엇일까?

  • 회원을 등록하고 수정하고 조회하는 것이 리소스가 아니다!
  • 예) 회원 정보를 조회해라 → 회원이 리소스
  • 회원이라는 개념 자체가 리소스인 것이다.

그렇다면 리소스를 어떻게 식별하는게 좋을까?

  • 회원을 등록하고 수정하고 조회하는 행위를 배제하고
  • 회원이라는 리소스만을 식별하면 된다. → 회원 리소스를 URI에 매핑

API URI를 설계해보자

회원 목록 조회/members
회원 조회/members/{id}
회원 등록/members/{id}
회원 수정/members/{id}
회원 삭제/members/{id}
💡 계층 구조 상 상위를 컬렉션으로 보고 복수단어 사용을 권장한다(member → members)

위에 표에 있는 Url만 가지고 이게 조회를 하라는건지 등록을 하라는건지 알 수 있을까?

이제 그것을 행위인 HTTP Method로 나타내면 된다.

위 Url과 같이 Url에는 리소스만 적어주고 어떤 요청을 하는지는 행위인 HTTP Method로 구분해주면 되는 것이다.

HTTP Method의 종류

RFC 9110이 정의하는 HTTP Method의 종류는 아래와 같다.

RFC 9110: HTTP Semantics

RFC가 뭔가요?

위키 백과에 따르면 RFC는 아래와 같다.

RFC(Request for Comments) 문서는 비평을 기다리는 문서라는 의미로, 컴퓨터 네트워크 공학 등에서 인터넷 기술에 적용 가능한 새로운 연구, 혁신, 기법 등을 아우르는 메모를 나타낸다.

인터넷 협회(Internet Society)에서 기술자 및 컴퓨터 과학자들은 RFC 메모의 형태로 생각을 출판하게 되며, 이러한 출판의 목적은 자신의 새로운 생각 및 정보에 대해 전문가 비평을 바라는 것, 혹은 그러한 생각을 단순히 전달하는 것이다. 때로는 공학적인 유머를 위해서이기도 하다(만우절 RFC 참조). 인터넷국제표준화기구(IETF)는 일부 RFC를 인터넷 표준으로 받아들이기도 한다.

RFC 편집자는 매 RFC 문서에 일련 번호를 부여한다. 일단 일련 번호를 부여 받고 출판되면, RFC는 절대 폐지되거나 수정되지 않는다. 만약 어떤 RFC 문서가 수정이 필요하다면, 저자는 수정된 문서를 다른 RFC 문서로 다시 출판해야 한다. 그러므로, 일부 RFC는 이전 버전의 RFC를 개선한 문서이며, 이전 버전의 RFC를 무효화하기도 한다. 이러한 덮어쓰는 방식을 통해, 번호 순으로 나열된 일련의 RFC는 인터넷 표준의 역사를 나타내기도 한다.

나무위키???같은 느낌이다. 어쨋든 이것을 두 번째 문단에서 볼 수 있다싶이 인터넷국제표준화기구(IETF)는 일부 RFC를 인터넷 표준으로 받아들이기도 한단다. 꽤나 신뢰할 수 있는 자료가 아닐까 싶다.

우리가 자주 쓰는 HTTP Method

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

기타 HTTP 메서드

  • HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
  • OPTIONS: 대상 리소스에 대한 통신 가능 옵션(어떤 HTTP 메서드가 가능한지)을 설명(주로 CORS에서 사용)

위 메서드들 중 모든 서버는 GET과 HEAD 메서드는 반드시 지원해야 하지만 나머지 메서드에 대해서는 선택사항이다.

profile
백엔드개발자 손창현입니다.

0개의 댓글