<form method="POST">
<input name="title">
<input name="author">
<input type="submit">
</form>
curl --http1.0 -d title="The Art of Community" -d author="Jono Bacon" http://localhost:18888
1) RFC 1886에서 책정한 변환 포맷
+
로 바뀜예시)
변환 전:title=The Art of Community&author=Jono Bacon
변환 후:title=The+Art+of+Community&author=Jono+Bacon
2) RFC 3986에서 책정환 변환 포맷
%20
로 바뀜예시)
변환 전:title=The Art of Community&author=Jono Bacon
변환 후:title=The%20Art%20of%20Community&author=Jono%20Bacon
3) 웹 폼의 GET의 경우, 바디가 아니라 쿼리로서 URL에 부여된다고 RFC 1866에 정의되어 있음
<form action="POST" enctype="multipart/form-data">
</form>
1) 경계 문자열
을 이용해서 바디의 파일들을 나누기
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryyOYfbccgoID172j7
------WebKitFormBoundaryyOYfbccgoID172j7
Content-Disposition: form-data; name="title"
The Art of Community
------WebKitFormBoundaryyOYfbccgoID172j7
Content-Disposition: form-data; name="author"
Jono Bacon
------WebKitFormBoundaryyOYfbccgoID172j7--
2) 파일 전송
<input name="attachment-file" type="file">
------WebKitFormBoundaryyOYfbccgoID172j7
Content-Disposition: form-data; name="attachment-file"; filename="test.txt"
Content-Type: text/plain
hello world
------WebKitFormBoundaryyOYfbccgoID172j7--
이름, 파일명, 파일 종류, 파일 내용
이라는 3가지 정보가 전송됨3XX status code를 사용한 리다이렉트의 제약? 사항
- URL은 2천가 이내라서 GET의 쿼리로 보낼 수 있는 데이터양에 한계가 있음
- 데이터가 URL에 포함되므로, 전송하는 내용이 엑세스 로그 등에 남을 우려가 있음
<input type="hidden">
태그로 기술된 HTML이 되돌아 온다. 폼에서 보내는 곳이 리다이렉트할 곳이다. 브라우저가 이 HTML을 열면, 로드 직후 발생하는 이벤트를 폼으로 전송하므로 즉시 리다이렉트로 이동하게 된다HTTP/1.1 200 OK
Date: 21 Jan 2004 07:00:49 GMT
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE html>
<html>
<body onload="document.forms[0].submit()">
<form action="리다이렉트하고 싶은 곳" method="post">
<input type="hidden" name="data" value="보내고 싶은 메시지" />>
<input type="submit" value="Continue" />
</form>
</body>