폼 전송
◀ ■ ▶
폼 전송 방식
FORM element의 method 속성은 FORM을 서버로 전송하는데 사용되는 방식을 결정하는데, 다음 두 가지 값을 가질 수 있다.
- get : Action 속성이 지정하는 URL에 ?를 붙이고, 이어서 form data set(control-name/current-value의 쌍)이 뒤에 붙는다. "application/x-www-form-urlencoded" 방식으로 암호화된 새 URL이 서버에 있는 처리 프로그램으로 넘어간다. 이 때는 Form data set이 아스키 문자로만 제한된다. 폼이 원래의 데이터베이스에 변화를 주지 않는 경우, 예를 들어 검색 서비스 같은 경우에 주로 사용된다.
- post : Form data set이 폼의 본문에 포함되어 서버에 있는 처리 프로그램으로 넘어간다. 폼이 데이터베이스의 내용을 변경하거나 서비스에 가입을 하거나 하는 경우에 주로 사용된다. Enctype 속성의 값이 "multipart/form-data"일 때 form data set에 들어가는 문자에 제한이 없다.
서버로 전송되는 컨트롤(Successful controls)
하나의 폼에 있는 모든 컨트롤이 서버로 전송되는 것은 아니다. 서버로 전송되는 컨트롤은 반드시 control name을 가지고 있어야 하며, current value(현재가)와 쌍을 이루어야 한다.
- Disabled control은 전송되지 않는다.
- Submit 단추가 두 개 이상 있을 때는, 사용자가 선택한 Submit 단추 컨트롤만 전송된다.
- 선택된 체크상자는 모두 전송된다.
- Name 속성의 값이 같은 라디오 단추 중에서 선택된 라디오 단추 하나만 전송된다.
- SELECT element의 name 속성의 값이 메뉴의 control name이 되고, current value(현재가)는 각 OPTION의 내용이 된다. 선택된 OPTION만이 전송된다.
- 파일 전송 컨트롤의 current value는 선택한 파일들의 이름이다.
폼 데이터 처리
사용자가 폼을 전송하면(보내기 단추 등을 눌러서) 사용자의 웹 브라우저는 다음과 같은 순서로 사용자의 요청을 처리하게 된다.
- 전송할 컨트롤(successful controls)을 골라낸다.
- Form data set을 만든다. Form data set이란, 전송할 컨트롤의 control-name/current-value의 쌍을 말한다.
- FORM element의 enctype 속성의 값에 따라 form data set이 암호화된다.
- FORM element의 method 속성이 정한 방식으로, action 속성이 정한 처리 프로그램으로 암호화된 form data set이 전송된다.
◀ ■ ▶