CS

[네트워크] HTTP 메서드 활용

프로아마추어 2023. 7. 21. 16:27

 

1. 클라이언트에서 서버로 데이터 전송

2. HTTP API 설계 예시

 

1. 클라이언트에서 서버로 데이터 전송

 

1-1. 데이터 전달 방식 2가지

ㅁ 쿼리 파라미터를 통한 데이터 전송

  - GET

  - 주로 정렬 필터(검색어)

 

ㅁ 메시지 바디를 통한 데이터 전송

  - POST, PUT, PATCH

  - 회원 가입, 상품 주문, 리소스 등록, 리소스 변경

 

1-2. 4가지 상황

ㅁ 정적 데이터 조회

  - 이미지, 정적 텍스트 문서

  - 조회는 GET 사용

 

ㅁ 동적 데이터 조회

  - 쿼리 파라미터 사용

  - 주로 검색, 게시판 목록에서 정렬 필터

 

ㅁ HTML FORM 을 통한 데이터 전송

  - multipart/form-data: 바이너리 데이터 전송 시 사용. 다른 종류의 여러 파일과 폼의 내용을 함께 전송 가능

 

ㅁ HTTP API를 통한 데이터 전송

  - 서버 to 서버 통신

  - 앱 클라이언트 (아이폰, 안드로이드)

  - 웹 클라이언트 HTML에서 Form 전송 대시 js를 통신에 사용. React, Vue 등

  - POST, PUT, APTCH: 메시지 바디를 통해 데이터 전송

  - GET: 조회, 쿼리 파라미터로 데이터 전달

  - Contetn-Type: application/json을 주로 사용

 

 

 

2. HTTP API 설계 예시

 

HTTP API - 컬렉션

 ㅁ 회원 관리 시스템 POST 기반 등록

    - /members -> GET

    - /members -> POST

    - /members/{id} -> GET

    - /members/{id} -> PATCH, PUT, POST

    - /members/{id} -> DELETE

 

ㅁ 클라이언트는 등록될 리소스의 URI를 모른다.

 

ㅁ 서버가 새로 등록된 리소스 URI를 생성해준다.

 

ㅁ 컬렉션

  - 서버가 관리하는 리소스 디렉토리

  - 서버가 리소스의 URI를 생성하고 관리

  - 여기서 컬렉션은 /members

 

  

HTTP API - 스토어

ㅁ PUT 기반 등록

 

ㅁ 예) 정적 컨텐츠 관리, 원격 파일 관리

 

ㅁ 파일 관리 시스템 

    - 파일 목록 /files -> GET

    - 파일 조회 /files/{fileName} -> GET

    - 파일 등록 /files/{fileName} -> PUT

    - 파일 삭제 /files/{fileName} -> DELETE

    - 파일 대량 등록 /files -> POST

  

ㅁ 클라이언트가 리소스 URI를 알고 있어야 한다.

 

ㅁ 클라이언트가 직접 리소스의 URI를 지정한다.

 

ㅁ 스토어

  - 클라이언트가 관리하는 리소스 저장

  - 클라이언트가 리소스 URI를 알고 관리

  - 여기서 스토어는 /files

 

 

HTML FORM 사용

ㅁ 웹 페이지 회원 관리

 

ㅁ GET, POST 만 지원

- 회원 목록 /members -> GET

- 회원 등록 폼 /members/new -> GET

- 회원 등록 /members/new, /members -> POST

- 회원 조회 /members/{memberId} -> GET

- 회원 수정 폼 /members/{id}/edit -> GET

- 회원 수정 /members/{id}/edit, /members/{id} -> POST

- 회원 삭제 /members/{id}/delete -> POST

 

ㅁ 컨트롤 URI

  - GET, POST 만 지원하므로 제약이 있음

  - 위와 같은 제약을 해결하기 위해 동사로 된 리소스 경로 사용  

  - POST의 /new, /edit, /delete가 컨트롤 URI

  - HTTP 메서드로 해결하기 어려운 경우 사용 (HTTP API 포함)

 

 

 

 

 

https://restfulapi.net/resource-naming 

 

REST API - URL Naming Conventions

In REST, having a strong and consistent REST resource naming strategy – will prove one of the best design decisions in the long term.

restfulapi.net

 

'CS' 카테고리의 다른 글

[네트워크] HTTP 상태코드  (0) 2023.07.21
[네트워크] HTTP 메서드  (0) 2023.07.21
[네트워크] HTTP  (0) 2023.07.21
[네트워크] URI와 웹 브라우저 요청 흐름  (0) 2023.07.21
[네트워크] 인터넷 네트워크  (0) 2023.07.21