-
HTTP (6) - HTTP 메서드 활용카테고리 없음 2023. 9. 13. 14:14
1. HTTP 메서드 활용
- 클라이언트에서 서버로 데이터 전송
- HTTP API 설계 예시
- 클라이언트에서 서버로 데이터를 전송하는 방식은 크게 2가지 이다.
> GET (쿼리파라미터) VS POST,PUT,PATCH (바디를 통한 전송)
2. 클라이언트에서 서버로 데이터 전송
- 정적 데이터조회 : 이미지, 정적 텍스트
- 동적 데이터 : 주로 검색, 게시판 목록 정렬 필터
- HTML Form을 통한 데이터 전송 (회원가입,상품주문,데이터변경)
- HTTP API를 통한 데이터 전송 (Form과 동일함 주로 서버 to 서버에서 사용)
2.1 정적 데이터 조회 (쿼리 파라미터 미사용)
- 이미지,정적 텍스트, GET을 사용
- 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능
2.2 동적 데이터 조회 (쿼리 파라미터 사용)
- 주로 검색, 게시판 목록 정렬 필터
- GET사용 쿼리 파라미터로 데이터 전달
2.3 HTML Form 데이터 전송
출처: HTTP(인프런) 김영한 출처: HTTP (인프런) 김영한 - HTML Form을 통해 POST와 GET 모두 사용가능 (단 GET은 조회용도로 사용하자)
- HTML POST 전송: 회원가입,상품주문,데이터변경
- Content-Type : application/x-www-from-urlencoded사용
- form에 내용을 메시지 바디를 통해 전송 (key=value방식)
- 전송데이터를 url encoding처리
- Content-Type : multipart/form-data
- 파일 업로드와 같은 바이너리 데이터 전송시 사용
- 다른 종류의 여러 파일과 폼의 내용을 함께 전송 가능 (메시지도 전달 가능하다는 뜻)
- HTML Form전송은 GET과 POST만 지원한다.
2.4 HTTP API 데이터 전송
서버 to 서버 : 백엔드 시스템 통신
앱 클라이언트 : 아이폰,안드로이드
웹 클라이언트 : - HTML에서 From전송 대신 자바 스크립트를 통한 AJAX등에서 사용
POST,PUT,PATCH: 메시지 바디를 통해 데이터 전송
Content-Type: application/json을 주로 사용한다.
TEXT,XML,JSON등을 주고받음
3. HTTP API 설계 예시
HTTP API - 컬렉션
> POST기반 등록
> 회원관리 API제공
HTTP API - 스토어
> PUT기반 등록
> 정적 컨텐츠관리, 원격 파일관리
HTML FORM 사용
>웹 페이지 회원관리
> GET과POST만 지원
3.1 회원관리 시스템
API설계 - POST기반 등록
출처: HTTP(인프런) 김영한 - POST 신규 자원 등록 특징
> 클라이언트는 등록될 리소스의 URI모른다.
> 서버가 새로 등록된 리소스 URI 생성해준다.
> 컬렉션 : - 서버가 관리하는 리소스 디렉토리
- 서버가 리소스의 URI를 생성하고 관리
- 여기서 컬렉션은 /members
3.2 파일 관리 시스템
PUT - 신규 자원 등록
-
출처: HTTP(인프런) 김영한 PUT 신규 자원 등록 특징
> 클라이언트가 리소스 URI를 알아야함
> 클라이언트가 직접 리소스의 URI를 지정함
> 스토어 : 클라이언트가 관리하는 리소스 저장소
클라이언트가 리소스의 URI를 알고 관리
여기서 스토어는 /files
3.3 HTML FORM 사용
- HTML FORM은 GET,POST만 지원
출처: HTTP(인프런) 김영한 - 컨트롤 URI
GET과 POST만 지원하여 제약이 있다.
이런 제약을 해결하기 위해 동사로 된 리소스 경로를 사용한다.
POST에 /new/edit 등 행위가 컨트롤 URI이다.
* URI설계 개념
출처: HTTP(인프런) 김영한