전달방식은 두가지이다.
클라이언트
GET/리소스 경로 HTTP/1.1
(GET/statics/abc.jpg HTTP/1.1)
Host: localhost:8080
서버 /statics/abc.jpg
HTTP/1.1 200 OK
Content-Type: image/jpeg
Content_length: 34012
이미지코드
이런식으로 단순하게 요청한 정적 데이터를 반환홰준다.
GET/search?q=hellp&hl=ko HTTP/1.1
Host: www.google.com
이런식으로 쿼리 파라미터를 보내면 서버에서 이를 해석해서 그 결과를 찾고 결과를 응답해준다
POST save
<form action="/save" method="post">
<input type="text" name="username" />
<input type="text" name="age" />
<button type="submit">전송</button>
</form>
이런 form 태그를 post 방식으로 보내는것이다.
이를 보내면 HTTP 메세지는 다음과 같다 .
POST /save HTTP/1.1
HOST : localhost:8080
Content-Type:application/x-www-form-urlencoded
username=kim&age=20
method action 형식을 가진다.
content-type은 거의 쿼리 파라미터와 유사한 형식으로 키벨류를 보낸다.
만약 method를 get으로 쓰면 url경로에 알아서 쿼리형태로 넣는다. 근데 get은 save에 쓰면 안된다.
파일전송 multipart
<form action="/save" method="post" enctype="multipart/form-data">
<input type="text" name="username" />
<input type="text" name="age" />
<input type="file" name="file1" />
<button type="submit">전송</button>
</form>
enctype를 multipart로 설정하면, 웹 브라우저가 알아서 정보들을 구분해서 여러 파트의 데이터로 나눠서 전송한다.
POST /members HTTP/1.1
Content-Type: application/json
{
"username": "young",
"age": 20
}