Query Parameter
를 통한 데이터 전송
GET
- 주로 정렬 필터(검색어)
Message Body
를 통한 데이터 전송
POST, PUT, PATCH
- 회원 가입, 상품 주문, 리소스 등록, 리소스 변경
HTML Form
을 통한 데이터 전송HTTP API
를 통한 데이터 전송Ajax
)GET
사용GET
사용GET
은 쿼리 파라미터를 사용해서 데이터를 전달POST 전송 - 저장
/save
username=kim&age=20
GET 전송 - 저장
POST
에서 GET
으로 메서드를 변경한 후에 전송을 하면 안됨GET
은 조회에만 사용하고 리소스 변경이 발생하는 곳에 사용하면 안됨GET 전송 - 조회
multipart/form-data
enctype
binary data
를 전송할 때 주로 사용함정리
HTML Form submit
시 POST 전송
- ex) 회원가입, 상품 주문, 데이터 변경
Content-Type: application/x-www-form-urlencoded
사용
- form의 내용을 메시지 바디를 통해서 전송(
key=value
, Query Parameter 형식)- 전송 데이터를 url encoding 처리
- ex)
abc김
->abc%EA%B9%80
HTML Form
은 GET 전송도 가능
ontent-Type: multipart/form-data
- 파일 업로드 같은
binary data
전송시 사용- 다른 종류의 여러 파일과 폼의 내용 함께 전송 가능(그래서 이름이
multipart
)
- 참고 :
HTML Form
전송은GET
,POST
만 지원
- 서버 to 서버
- 백엔드 시스템 통신
- 앱 클라이언트
- 아이폰, 안드로이드
- 웹 클라이언트
HTML
에서Form
전송 대신 자바 스크립트를 통한 통신에 사용 (AJAX
)- ex)
React
,VueJs
같은 웹 클라이언트와 API 통신
POST, PUT, PATCH
: 메시지 바디를 통해 데이터 전송
GET
: 조회, 쿼리 파라미터로 데이터 전달
Content-Type: aplication/json
을 주로 사용 (사실상 표준)
TXT, XML, JSON
등
회원 목록 /memebers -> GET
회원 등록 /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 /members/{id} -> PATCH, PUT, POST
회원 삭제 /members/{id} -> DELETE
URI
를 모름/members
-> POST
POST /members
URI
를 생성해줌HTTP/1.1 201 Created
Location: /members/100
URI
를 생성하고 관리/members
파일 목록 /files -> GET
파일 조회 /files/{filename} -> GET
파일 등록 /files/{filename} -> PUT
파일 삭제 /files/{filename} -> DELETE
파일 대량 등록 /files/{filename} -> POST
/files/{filename}
-> PUT
PUT /files/star.jpg
URI
를 지정함
- 클라이언트가 관리하는 리소스 저장소
- 클라이언트가 리소스의
URI
를 알고 관리- 여기서 스토어는
/files
회원 목록 /memebers -> 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
HTML FORM은 GET
, POST
만 지원 -> 제약이 있음
AJAX
같은 기술을 사용해서 해결 가능
여기서는 순수 HTML
, HTML FORM
에 대한 이야기임
회원 등록 폼 GET과 회원 등록 POST의 url을 맞추면 만약 전송 후 다시 반송을 하는 시점에 url을 맞추기 좋아서 선호하는 방식
delete는 지원하지 않기 때문에 /delete
와 같은 control uri 사용
GET, POST
만 지원하므로 제약이 있음- 따라서 이러한 제약을 해결하기 위해 동사로 된 리소스 경로를 사용함
POST
의/new, /edit, /delete
가 컨트롤 URI- HTTP 메서드로 해결하기 애매한 경우 사용함(
HTTP API
포함)
- 리소스에 대한 이해를 바탕으로 대체제로서 사용하도록 해야 함
- 문서, 컬렉션, 스토어를 최대한 사용해보고 안되면 활용하도록 해야 함
- 실무에서 자주 사용됨
/members/100
, files/star.jpg
/members
/files
/members/{id}/delete
강의 출처 : 인프런 : 모든 개발자를 위한 HTTP 웹 기본 지식
잘봤습니다.