[데이터 전달 방식]
1.쿼리 파리미터를 통해 : GET
2.메세지 바디를 통해 : POST, PUT, PATCH
[클라이언트에서 서버로 데이터 전송]
1.정적 데이터 조회 - 이미지나 정적텍스트 문서, GET사용, 쿼리 파라미터 없이 리소스 경로로 단순 조회 가능
경로가 /star.jsp면 서버에서 그 이미지를 클라이언트에 내려줘. 추가적인 데이터를 내려주는게 없어.단순히 URI 경로만 넣으면 받아서 이미지 리소스를 클라이언트에 내려줘.
2.동적 데이터 조회 - 조회시 데이터 전달할 때. 주로 검색, 게시판 목록, 데이터 조회
HTTP메세지가가 만들어져서 (GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com) 전달하면 서버에서 받아서 쿼리 파리미터를 가지고 key&value를 꺼내서 결과를 응답해줘.
3.HTML Form데이터 전송
Content-Type: application/x-www-form-urlencoded 이 값이디폴트 값. form의 메세지를 메세지 바디에 ket&value형식으로 (쿼리마라이터 처럼)보내줌. 전송 데이터를 url emcoding처리함.
키&밸류스타일로 데이터를 만들고 http바디에 넣고 쿼리파라미터와 동일한 방식으로 서버에 전송
post면 메세지 바디에, get이면 url경로에.
4. HTTP API 전송 - html폼을 사용하지 않음
서버 to 서버,앱 클라이언트,웹 클라이언트(html에서 form대신 자바스크립트로 통신:AJAX)
[HTTP API]
<회원 관리 시스템>
API 설계 - POST 기반 등록
• 회원 목록 /members -> GET
• 회원 등록 /members -> POST
• 회원 조회 /members/{id} -> GET
• 회원 수정 /members/{id} -> PATCH, PUT, POST
• 회원 삭제 /members/{id} -> DELETE
POST-신규자원등록
1. 클라이언트는 등록될 리소스의 URI를몰라
회원데이터로 서버에 던지면 '서버'가 알아서 회원 저장하고 식별할 수 있는 URI만들어줘.
2. 서버가 새로 등록된 리소스 URI를 생성
3. 컬렉션이란?
서버가 관리하는 리소스 디렉토리로 서버가 리소스의 URI를 생성하고 관리함.여기서 컬렉션은 /members
<파일 관리 시스템>
API 설계 - PUT 기반 등록
• 파일 목록 /files -> GET
• 파일 조회 /files/{filename} -> GET
• 파일 등록 /files/{filename} -> PUT
• 파일 삭제 /files/{filename} -> DELETE
• 파일 대량 등록 /files -> POST
PUT-신규자원등록 post를 안쓰고 있음.
1. 클라이언트가 리소스 URI를 알고 있어야 한다.
파일 등록 시 /files/{파일이름}을 넣어준다? : 이 uri를 클라이언트가 알고있다!-> PUT
PUT /files/star.jpg
2. 클라이언트가 직접 리소스의 URI를 지정한다.
cf.post는 /members에 데이터 보내면 서버가 알아서 회원 id만들고 uri경로도 알아서 만들어서 내려줬음.(클라가 서버에 요청하는 것!)
put은 uri를 다 알고 등록해. 클라이언트가 직접 관리
3. 스토어(Store)란?
클라이언트가 관리하는 리소스 저장소
클라이언트가 리소스의 URI를 알고 관리. 스토어는 /files
<HTML FORM 사용>
회원 목록 /members -> GET
회원 등록 폼 /members/new -> GET
회원 등록 /members/new, /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 폼 /members/{id}/edit -> GET
회원 수정 /members/{id}/edit, /members/{id} -> POST
회원 삭제 /members/{id}/delete -> POST
get,post만 사용
BUT 컨트롤 URI란?제약이 있어 POST의 /new, /edit, /delete가 컨트롤 URI이렇게 사용
[HTML FORM 사용]
HTML FORM은 GET,POST만 지원
[정리]
• HTTP API - 컬렉션 : POST 기반 등록 , 서버가 리소스 URI 결정 많이 써~
• HTTP API - 스토어 : PUT 기반 등록 ,클라이언트가 리소스 URI 결정
• HTML FORM 사용 : 순수 HTML + HTML form 사용 , GET, POST만 지원
post로 신규데이터 등록 : 클라이언트가 서버에 요청. 서버가 리소스를 알아서 내려줌.
put 기반 등록 : 리소스 url를 알고 등록 . 그래서 클라이언트가 등록될 리소스를 직접 관리->"스토어"
'Spring 강의 > network' 카테고리의 다른 글
[network] - (7) HTTP 헤더1 : 일반 헤더 (0) | 2022.04.07 |
---|---|
[network] - (6) HTTP 상태코드 (0) | 2022.04.07 |
[network] - (4) HTTP 메서드 (0) | 2022.04.04 |
[network] - (3) HTTP 기본 (0) | 2022.04.04 |
[network] - (2) URI와 웹 브라우저 요청 흐름 (0) | 2022.04.04 |