Frontend/HTML

[HTML]13_form ํƒœ๊ทธ

sukii 2023. 12. 26. 10:35
๋ฐ˜์‘ํ˜•

๐Ÿค”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_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 ํŒŒ์ผ(์œ„ ์ฝ”๋“œ) ์‹คํ–‰ ๊ฒฐ๊ณผโฌ‡๏ธ

13_action.html ์‹คํ–‰ ๊ฒฐ๊ณผ

 

๋ฐ˜์‘ํ˜•