클라이언트에서 서버로 데이터 전송
두 가지 전달 방식
1. 쿼리 파라미터를 통한 데이터 전송 (정적, 동적 데이터 조회)
- 주로 정렬 필터 (검색어)
2. 메시지 바디를 통한 데이터 전송 (HTML Form, HTTP API)
- 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 등,,
1. 정적 데이터 조회
정적 데이터는 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 --> 리소스 경로를 서버로 전달
2. 동적 데이터 조회
쿼리 파라미터를 통해 정렬 필터해 결과를 동적으로 조회 --> 쿼리로 필터링 데이터를 서버로 전달
3. HTML Form 데이터 전송
POST 메서드를 사용한 경우 (등록)
HTML Form 에 따라 웹 브라우저가 HTTP 요청 메세지를 생성한다
- application/x-www-form-urlencoded : form 데이터를 쿼리 형태(key = value)로 메세지를 바디에 생성해 전송.
- multipart/form-data : form 데이터를 HTTP 메세지 바디에서 -----XXX 로 구분해 메세지 생성. 파일 업로드 같은 바이너리 데이터 전송 시 사용.
GET 메서드를 사용한 경우(조회)
form 데이터를 쿼리에 넣어 메세지를 만든다!
4. HTTP API 데이터 전송
서버끼리 통신할 때!
Content-Type: application/json 을 주로 사용
HTTP 메세지를 직접 생성해서 전송?
**POST 기반 등록
클라이언트에서 등록될 리소스의 URI를 모르는 경우
Collection (컬렉션) : 서버가 관리하는 리소스 디렉토리
서버가 리소스의 URI를 생성하고 관리!
ex) 멤버를 등록하는 경우
/members 로 요청하면 서버에서 /members/123 으로 등록.
이때 /members 가 컬렉션이다!
**PUT기반 등록
클라이언트가 등록될 리소스의 URI를 아는 경우
Store(스토어): 클라이언트가 관리하는 리소스 저장소
클라이언트가 리소스의 URI를 알고 관리
ex) 파일을 등록하는 경우
PUT /files/star.jpg 로 요청해 파일을 등록
이때 /files 가 스토어이다!
**HTML form 사용하는 등록
HTML form 은 GET, POST 메서드만 사용 가능함
이런 경우 리소스 + GET, POST 만으로 설계하기 불가능 --> 동사로 된 리소스 경로 사용!
ex) members/{id}/delete -> POST
'코딩 > 네트워크' 카테고리의 다른 글
| [HTTP] HTTP 헤더 (0) | 2023.05.28 |
|---|---|
| [HTTP] 쿠키 & 캐시 (0) | 2023.05.27 |
| [HTTP] 상태 코드 (0) | 2023.05.26 |
| [HTTP] HTTP 메세지 & API URI 설계 방법 (0) | 2023.05.24 |
| [HTTP] 인터넷 통신의 원리 및 방법 (TCP/IP, Port, HTTP, URI) (1) | 2023.05.20 |