5강 HTTP 메서드 활용

Donghun Seol·2022년 10월 11일
0

5강 HTTP 메서드 활용

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

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

GET

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

POST, PUT, PATCH
회원가입, 상품 주문, 리소스 등록 및 변경시

4가지 상황을 통한 예시

1. 정적 데이터 조회

쿼리 파라미터 미사용
이미지, 정적 텍스트 문서는 단순히 GET 사용

2. 동적 데이터 조회

쿼리 파라미터 사용
https://www.google.com/search[?q=hello]

3. HTML Form 데이터 전송

POST 전송 - 저장

왼쪽의 폼을 채워서 전송을 클릭하면 우측의 메시지를 브라우저가 http 메시지 생성해서 서버로 보내준다. name속성이 key, 입력값이 value가 된다. 클라이언트, 서버간에 미리 정해진 약속이다.

만약 method의 post를 get으로 바꾸면 body를 queryparam으로 자동으로 변경해서 메시지를 전송한다.(form은 post와 get요청만 가능)

4. multipart/form-data

파일 전송을 위해 활용하는 enctype="multipart/form-data"
enctype은 메시지 바디의 형식을 지정해 준것
boundary=---XXX로 각 파트의 경계를 지정해준다.
각각의 파트별로 헤더가 존재하고, 본문에는 데이터를 넣는다.

HTTP API 데이터 전송

html, 브라우저 활용하지 않고 http 메시지로 직접 통신하는 경우

HTTP API 설계 예시

1. 회원 관리 시스템 (POST 기반 등록)

/members

목록 GET, query
등록 POST

/members/:id

조회 GET
수정 PATCH, PUT, POST
삭제 DELETE

POST를 활용한 등록

클라이언트는 신규 리소스의 URI를 모른다.
서버가 신규 리소스를 등록하면 응답의 'Location' 헤더에 신규 생성된 리소스의 URI를 돌려준다. 응답코드는 201 Created

여기서 컬렉션은 /members

  • 컬렉션이란 서버가 관리하는 리소스 디렉토리

2. 파일 관리 시스템 (PUT 기반 등록)

/files/{filename}

파일 등록 : PUT /files/:filename
파일 대량등록(임의로 정해도 된다) : POST /files

PUT을 활용한 등록

클라이언트가 신규 리소스의 URI를 알고 있음
클라이언트가 신규 리소스의 URI를 직접 지정함

여기서 스토어는 /files/:filename

  • 스토어는 클라이언트가 관리하는 리소스 저장소

3. HTML form 사용

form에서는 GET, POST만 사용 가능
따라서 control URI를 적절히(최소한으로) 사용해줘야 한다. (/create, /edit, /delete 등의 동사)

회원 목록/members GET
회원 등록 폼 /members/create GET
회원 등록 /members/create POST
회원 조회 /members/:id GET
회원 수정 폼 /members/:id/edit GET
회원 수정 /members/:id/edit POST
회원 삭제 /members/:id/delete POST

참고자료

restfulapi.net/resource-naming

profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글