클라이언트에서 서버로의 데이터 전송
데이터 전달 방식
1. 쿼리 파라미터
- GET
- 정렬 필터(검색어)
2. 메시지 바디
- POST, PUT, PATCH
- 회원 가입, 상품 주문, 리소스 등록, 리소스 변경
상황 별 데이터 전송
1. 정적 데이터 조회
- 이미지, 정적 텍스트 문서
- 조회는 GET 사용
- 쿼리 파라미터 없이 리소스 경로로 단순 조회
- /static/image.png
2. 동적 데이터 조회
- 검색, 게시판 목록에서 정렬 필터(검색어)
- 조회는 GET 사용
- GET은 쿼리 파라미터를 사용해 데이터를 전달함
- /search?keyword=world&lg=ko
3. HTML Form을 통한 데이터 전송
- 회원 가입, 상품 주문, 데이터 변경
- submit 시 POST 전송
- Content-Type: application/x-www-form-urlencoded
- form의 내용을 Body를 통해서 전송(key=value, 쿼리 파라미터 형식)
- 전송 데이터를 url encoding 처리
- abc김 -> abc%EA%B9%80
- Content-Type: multipart/form-data
- 파일 업로드에 주로 사용(바이너리 데이터 전송)
- 다른 종류의 여러 파일과 form의 내용 함께 전송 가능(multipart)
- GET 전송도 가능
- /find?name=yoon&age=24
- HTML Form 전송은 GET, POST만 지원한다.
4. HTTP API를 통한 데이터 전송
- 회원 가입, 상품 주문, 데이터 변경
- 서버 to 서버(백엔드 시스템 통신)
- 앱 클라이언트(아이폰, 안드로이트)
- 웹 클라이언트(Ajax -> React, VueJs 같은 웹 클라이언트와 API 통신)
- Content-Type: application/json을 주로 사용(사실상 표준)
- 텍스트, XML, JSON 등
HTTP API 설계 예시 (URI 설계)
1. 문서(document)
- 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row)
- /members/200, /static/countingstars.png
2. 컬렉션(collection)
- 서버가 관리하는 리소스 디렉터리(미네랄 저장소)
- 서버가 리소스의 URI를 생성하고 관리
- /members
3. 스토어(store)
- 클라이언트가 관리하는 자원 저장소
- 클라이언트가 리소스의 URI를 알고 관리
- /files
4. 컨트롤러(controller), 컨트롤 URI
- 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행
- 동사 직접 사용(원래 명사)
- /members/{id}/delete
'Computer Science > Network' 카테고리의 다른 글
컴퓨터 네트워크 2강 정리 (0) | 2022.08.02 |
---|---|
컴퓨터 네트워크 1강 정리 (0) | 2022.08.02 |
HTTP(HyperText Transfer Protocol) 기본 (0) | 2022.07.07 |
www.naver.com이 나타나는 과정 (0) | 2022.07.07 |
URI(Uniform Resource Identifier) (0) | 2022.07.07 |