사용자에게 데이터를 입력받아 이를 웹 서버로 전송하고, 그 결과에 따라 웹서버가 새로운 웹페이지를 띄워주는 기능을 말한다.
<p><input type="text"></p>
<p>
<textarea></textarea>
</p>
<p>
<input type="submit">
</p>
위 코드로 데이터를 입력받는 간단한 웹페이지를 생성할 수 있다.
p : 줄바꿈을 위해 그룹을 묶어주는 태그
input type="text" : 한줄짜리 입력칸
textarea : 여러줄짜리 입력칸
input type="submit" : 제출버튼
입력한 데이터를 웹서버로 전송하기 위해 form
태그로 감싸주기
<form>
<p><input type="text"></p>
<p>
<textarea></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
<form action="http://localhost:3000/process_create">
<form action="http://localhost:3000/process_create">
<p><input type="text" name="title"></p>
<p>
<textarea name="description"></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
즉, 사용자의 입력에 따라 주소의 QueryString이 생성되고, 그 주소로 이동하게 되는 것을 볼 수 있다.
Form : 각 control에 데이터를 입력하고 submit 버튼을 눌렀을 때, action 주소의 서버로, 데이터를 QueryString의 형태로 전송하는 html의 기능
💡하지만, 사용자의 입력이 그대로 주소에 나타나는 것은 보안, 관리상 문제가 발생하기 쉽다.
<form action="http://localhost:3000/process_create" method="post">
method="get" : (default, 생략가능) 읽기 전용
method="post" : 수정 전용
이라고 생각하면 쉽다.
따라서,
<form action="http://localhost:3000/process_create"
method="post">
<p><input type="text" name="title"></p>
<p>
<textarea name="description"></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
최종적으로 이와 같은 html을 생성하고, 각 컨트롤에 데이터를 입력하여 submit하여도
이와 같이 QueryString이 포함되지 않은 url로 이동하게 된다!