인프런 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하고 정리한 글입니다.
클라이언트에서 서버로 데이터를 전송하는 방식에 대해 정리한다.
크게 두가지가 있는데,
HTML Form 전송은 GET, POST만 지원한다.
Content-Type: application/x-www-form-urlencoded
ㄴ POST 전송 : 쿼리파라미터와 유사한 형식으로, 인코딩 된 데티어를 Key, Value 스타일로 데이터를 만들어서 http body에 넣어서 전달
ㄴ GET 전송 : 쿼리 파라미터에 인코딩된 URL 데이터가 들어감(ex. GET /member?username=kim&age=20)
ㄴ multipart/form-data : 파일 업로드와 같은 바이너리 데이터 전송 시 사용 (여러 파일과 폼을 함께전송하는 개념)
안드로이드나 IOS에서 클라이언트에서 서버로 데이터를 바로 전송해야 한다. 이런 경우에 우리는 HTTP API로 전송한다고 한다.
• 서버 to 서버
ㄴ 백엔드 시스템 통신
• 앱 클라이언트
ㄴ 아이폰, 안드로이드
• 웹 클라이언트
ㄴ HTML에서 Form 전송 대신 자바 스크립트를 통한 통신에 사용(AJAX)
ㄴ 예) React, VueJs 같은 웹 클라이언트와 API 통신
• POST, PUT, PATCH: 메시지 바디를 통해 데이터 전송
• GET: 조회, 쿼리 파라미터로 데이터 전달
• Content-Type: application/json을 주로 사용 (사실상 표준)
ㄴ TEXT, XML, JSON 등등