본문 바로가기
소소한 STUDY/컴퓨터사이언스

[네트워크] HTTP 메서드

by mvon_jeong 2023. 1. 24.
반응형

1. HTTP API 설계

 

ㅇ 요구사항: 회원 정보 관리 API를 만들어라

  • 회원 목록 조회
  • 회원 조회
  • 회원 등록
  • 회원 수정
  • 회원 삭제

ㅇ API URI(Uniform Resource Identifier) 설계

  • 회원 목록 조회 /read-member-list
  • 회원 조회 /read-member-by-id
  • 회원 등록 /create-member
  • 회원 수정 /update-member
  • 회원 삭제 /delete-member

     → API URI 설계시 가장 중요한 것 : 리소스 식별

 

 API URI 설계 시 중요하게 고려해야 할 점

  - 리소스란? 

     : 행위가 아닌 대상이 리소스

        EX) 미네랄을 캐라 > 리소스 : 미네랄,  회원을 등록/수정/조회 > 리소스 : 회원

  - 리소스를 어떻게 식별하는개 좋을까?

     : 회원을 등록/수정/조회하는 행위는 모두 배제

     : 회원이라는 대상(리소스)만 식별하면 된다 → 회원 리소스를 URI에 매핑

 

ㅇ 리소스 식별/ URI 계층구조 활용 API URI 설계

  • 회원 목록 조회 /members
  • 회원 조회 /members/{id}
  • 회원 등록 /members/{id}
  • 회원 수정 /members/{id}
  • 회원 삭제 /members/{id}

      ※ 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장

    → 조회/등록/수정/삭제에 대한 구분이 어려움

 

ㅇ HTTP 메서드 : 리소스와 행위를 분리!

  - URI는 리소스만 식별!

  - 리소스와 해당 리소스를 대상으로 하는 행위 분리

  • 리소스(명사): 회원
  • 행위(동사): 조회, 등록, 삭제, 변경

  - 행위(메서드)는 어떻게 구분?   : HTTP 메서드 - GET/POST/PUT/PATCH/DELETE로 구분

 

 

2. HTTP 메서드

 : 클라이언트가 서버에 요청 시 기대하는 행동

 

ㅇ  주요 HTTP 메서드 종류

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

      ※  최근 SPEC: 리소스 → Representation

 

ㅇ 기타 HTTP 메서드 종류

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

ㅇ Get

  - 리소스 조회

  - 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해 전달

  - 바디를 사용해 데이터 전달 가능 But, 미지원 서버가 많아 권장하지 않음

 

ㅇ Post

  - 요청 데이터(메시지 바디) 처리

  - 메시지 바디를 통해 서버로 요청 데이터 전달 → 서버는 요청 데이터를 처리(모든 기능 수행)

  - 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용

반응형