클라이언트 👉 서버
데이터 전달 방식은 크게 두가지로 나뉜다
🔎 여러 상황별 데이터 전송 방법
💡 GET도 쿼리 파라미터 대신 메시지 바디를 사용할 수 있지만, 지원하지 않는 서버가 많아 권장 X
1. POST - 저장
POST /action HTTP/1.1
HOST: localhost:8080
Content-Type: application/x-www-form-urlencoded 👈
username=kim&age=20 👈
Content-Type: application/x-www-form-urlencoded 사용
application/x-www-form-urlencoded
🔎 GET 방식으로 전송하게 되면?
GET은 메시지 바디를 사용하지 않아 쿼리 파라미터로 전달됨
but, 저장시엔 사용하지 말자
🔎 GET / POST 구분 이유?
설계 원칙을 지키기 위해, 규칙을 지키지 않을 경우의 혼선을 생각
2. 파일 형식 전송
<form action="" method="" enctype="multipart/form-data">
👇 요청 메시지
POST /action HTTP/1.1
HOST: localhost:8080
Content-Type: multipart/form-data; boundary=----XXX 👈
Content-Length: 10457
------XXX
Content-Disposition: form-data; name="username"
kim
------XXX
Content-Disposition: form-data; name="age"
20
------XXX
Content-Disposition: form-data; name="file1"; filename="intro.png"
Content-Type: image/Png
109293208aOpdfk34u.....
------XXX--
Content-Type: multipart/form-data;
html form 전송은 GET, POST만 지원
HTML Form을 사용하지 않는 거의 모든 상황
앱 클라이언트
웹 클라이언트
POST, PUT, PATCH : 메시지 바디를 통해 데이터 전송
GET : 조회, 쿼리 파라미터로 데이터 전달
Content-Type: appliation/json을 주로 사용 (사실상 표준)