[HTML]13_form ํ๊ทธ
๐คform ํ๊ทธ
์นํ๋ก๊ทธ๋จ์ ์์ฒญํ์ฌ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํ ํ๊ทธ
=> ํ์ํ๊ทธ๋ก ๋ฐ๋์ ์ฌ์ฉ์๋ก๋ถํฐ ๊ฐ์ ์
๋ ฅ๋ฐ๊ธฐ ์ํ ์
๋ ฅํ๊ทธ์ ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ๊ธฐ ์ํ Submit Event๋ฅผ ๋ฐ์ํ๋ ํ๊ทธ๋ฅผ ๋ฐ๋์ ์์ฑ
*์ ์ถ ์ด๋ฒคํธ(Submit Event) : form ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ๊ธฐ ์ํ ์ด๋ฒคํธ
๐ถaction ์์ฑ : form ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญํ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
=> action ์์ฑ์ ์๋ตํ ๊ฒฝ์ฐ ํ์ฌ ์คํ์ค์ธ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ฌ์ฉ
๐ถ method ์์ฑ : ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ๋ ์์ฒญ๋ฐฉ์(GET ๋๋ POST)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
=> method ์์ฑ์ ์๋ตํ ๊ฒฝ์ฐ GET ๋ฐฉ์์ผ๋ก ์นํ๋ก๊ทธ๋จ ์์ฒญ
=> ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ด ์์ด
๐ธGET : ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ URL ์ฃผ์์ ์ง์๋ฌธ์์ด(QueryString)์ผ๋ก ์ ๋ฌ
=> ๋ณด์์ ํ์๋ก ํ์ง ์๋ ์๋์ ๊ฐ์ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ์์ฒญ๋ฐฉ์
=> URL์ ์ต๋ ์ ๋ฌํ ์ ์๋ ํฌ๊ธฐ๊ฐ 2KB
=> ์๋ฅผ ๋ค์ด, ๊ฒ์๊ธ์ ๊ธ๋ฒํธ๋ฅผ ์ ๋ฌํ ๋ ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก ์ ๋ฌ(๋ณด์์ด ํ์ ์์ผ๋๊น)
*formํ๊ทธ๋ฅผ ์ธ ๋๋ ๊ฑฐ์ POST ๋ฐฉ์์ ์
๐ธ POST : ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ๋ฆฌํ์คํธ ๋ฉ์ธ์ง์ ๋ชธ์ฒด๋ถ(Entity Body)์ ์ ์ฅํ์ฌ ์ ๋ฌ
=> ๋ณด์์ ํ์๋ก ํ๋ ๊ฐ์ ์ ๋ฌํ๊ฑฐ๋ ๋๋์ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํ ์์ฒญ ๋ฐฉ์
*๋ฆฌํ์คํธ ๋ฉ์ธ์ง(Request Message) : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ํ์ฌ ์น์์(Web Context)์ ์์ฒญํ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ๋ด์ ์น์์์๊ฒ ์ ๋ฌํ๊ธฐ ์ํ ๊ฐ์ฒด
=> ๋จธ๋ฆฟ๋ถ(Header)์ ๋ชธ์ฒด๋ถ(Entity Body)๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ GET ๋ฐฉ์์ผ๋ก ์น์์์ ์์ฒญํ ๊ฒฝ์ฐ ๋ฆฌํ์คํธ ๋ฉ์ธ์ง์ ๋ชธ์ฒด๋ถ๋ ๋ฏธ์ฌ์ฉ
๐ถ enctype ์์ฑ : application/x-www-form-urlencoded, multipart/form-data, text/plain ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
=> ๋ฆฌํ์คํธ ๋ฉ์ธ์ง์ ๋ชธ์ฒด๋ถ์ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ์ ์ฅํ ํ์ผ์ ํํ๋ฅผ ํํ
=> enctype ์์ฑ์ ์๋ตํ ๊ฒฝ์ฐ application/x-www-form-urlencoded๋ฅผ ๊ธฐ๋ณธ ์์ฑ๊ฐ์ผ๋ก ์ฌ์ฉ
๐ธ application/x-www-form-urlencoded : ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ๋ ๋ฌธ์ ๋ฐ์ดํ์ ํ์ผ๋ก ์ ๋ฌ (์์ด, ํ๊ธ ๋ค ๊ฐ๋ฅ)
๐ธ multipart/form-data : ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ์์ ๋ฐ์ดํ์ ํ์ผ๋ก ์ ๋ฌ - ํ์ผ์ ์
๋ ฅ๋ฐ์ ์ ๋ฌํ ๋ ์ฌ์ฉ
๐ธ text/plain : ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌํ์ง ์์ ๋ฌธ์ ๋ฐ์ดํ์ ํ์ผ๋ก ์ ๋ฌ
13_form.html ํ์ผ ์ฝ๋๐ฉ๐ป
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML</title>
</head>
<body>
<h1>form ํ๊ทธ</h1>
<hr>
<form action="/web/html/13_action.html" method="post" enctype="application/x-www-form-urlencoded">
<!-- ์
๋ ฅํ๊ทธ : ์ฌ์ฉ์๋ก๋ถํฐ ๊ฐ์ ์
๋ ฅ๋ฐ๊ธฐ ์ํ ํ๊ทธ - input ํ๊ทธ, textarea ํ๊ทธ, select ํ๊ทธ ๋ฑ -->
<p>์์ด๋ : <input type="text" name="id"><br></p>
<p>๋น๋ฐ๋ฒํธ : <input type="password" name="passwd"><br></p>
<!-- ์ ์ถ ์ด๋ฒคํธ(Submit Event)๋ฅผ ๋ฐ์ํ๋ ํ๊ทธ : input ํ๊ทธ, button ํ๊ทธ ๋ฑ -->
<!-- => ์ ์ถ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ฉด form ํ๊ทธ๊ฐ ๋์๋์ด action ์์ฑ๊ฐ์ผ๋ก ์ค์ ๋ URL ์ฃผ์์
์นํ๋ก๊ทธ๋จ์ ์์ฒญํ๋ฉฐ ์
๋ ฅํ๊ทธ์ ์
๋ ฅ๋ ๊ฐ์ ์นํ๋ก๊ทธ๋จ์๊ฒ ์ ๋ฌ -->
<!-- => ์นํ๋ก๊ทธ๋จ์ ์คํ๊ฒฐ๊ณผ(HTML ๋ฌธ์)๋ฅผ ์๋ต๋ฐ์ ์ถ๋ ฅ - ํ์ด์ง ์๋ก ๊ณ ์นจ -->
<!-- => ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์๋ ์์ฒญ URL ์ฃผ์๋ก ๋ณ๊ฒฝ -->
<!-- button ํ๊ทธ : ๋ฒํผ์ ์ถ๋ ฅํ๋ ํ๊ทธ -->
<!-- type ์์ฑ : button, submit, reset ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์ -->
<!-- => ์์ฑ๊ฐ์ [submit]์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ ์ถ ์ด๋ฒคํธ ๋ฐ์ -->
<button type="submit">๋ก๊ทธ์ธ</button>
</form>
</body>
</html>
13_form.html ํ์ผ(์ ์ฝ๋) ์คํ ๊ฒฐ๊ณผโฌ๏ธ
13_action.html ํ์ผ ์ฝ๋ ๐ฉ๐ป
form ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญํ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ก ์ธ 13_action์ด๋ผ๋ html ๋ฌธ์ ์์ฑ
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML</title>
</head>
<body>
<h1>form ํ๊ทธ</h1>
<hr>
<p>form ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญํ ์นํ๋ก๊ทธ๋จ - ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ์ ๋ฌ๋ฐ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ</p>
<!-- a ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ฉด ์นํ๋ก๊ทธ๋จ์ GET ๋ฐฉ์์ผ๋ก ์์ฒญํ์ฌ HTML ๋ฌธ์๋ฅผ
์๋ต๋ฐ์ ์ถ๋ ฅ ์ฒ๋ฆฌ -->
<!-- => href ์์ฑ์ ์์ฒญํ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์ -->
<!-- => a ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ ๊ฒฝ์ฐ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํด ์ง์๋ฌธ์์ด์ ์์ฑํ์ฌ ์ ๋ฌ ๊ฐ๋ฅ -->
<!-- URL ์ฃผ์๋ ์๋ฌธ์, ์ซ์, ์ผ๋ถ ํน์๋ฌธ์๋ก๋ง ์์ฑ ๊ฐ๋ฅ -->
<!-- => ์ง์๋ฌธ์์ด์ ์์ฑํ ๊ฒฝ์ฐ ์๋ฌธ์, ์ซ์, ์ผ๋ถ ํน์๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์๋ ์ ์์ ์ธ ๋ฌธ์๊ฐ์ผ๋ก ์ ๋ฌ ๋ถ๊ฐ๋ฅ -->
<!-- => ์๋ฌธ์, ์ซ์, ์ผ๋ถ ํน์๋ฌธ์๋ฅผ ์ ์ธํ ๋ฌธ์๊ฐ ํฌํจ๋ ๋ฌธ์๊ฐ์ ๋ถํธํ ์ฒ๋ฆฌํ๋ฉด ์ ์์ ์ธ
์ ๋ฌ ๊ฐ๋ฅ - Java ๋๋ JavaScript -->
<!-- <p><a href="/web/html/13_form.html?name=ํ๊ธธ๋">[๋ก๊ทธ์ธ ํ์ด์ง ์ด๋]</a></p> -->
<p><a href="/web/html/13_form.html?name=HongGilDong">[๋ก๊ทธ์ธ ํ์ด์ง ์ด๋]</a></p>
</body>
</html>
13_action .html ํ์ผ(์ ์ฝ๋) ์คํ ๊ฒฐ๊ณผโฌ๏ธ