143
8
장
폼 처리
해야 할 필드가 모두 들어 있어야 하고 (옵션인 필드나 빈 필드는 상관없습니다), 불필요한 필
드가 있어서는 안 됩니다. 페이지에서 두 가지 일을 한다면 폼을 두 개 만드세요. 예를 들어 사
이트를 검색하는 폼을 하나 두고, 이메일 소식지를 구독하는 폼을 하나 두는 식으로 말입니다.
큰 폼을 하나 만들어 사용자가 어떤 버튼을 클릭했는지에 따라 다르게 반응하는 방법도 있지
만, 관리하기 어려울 뿐 아니라 장애가 있는 사람은 사용하기 쉽지 않습니다.
8.3
인코딩
폼을 전송할 때는 반드시 인코딩해야 합니다. 인코딩을 직접 명시하지 않으면 기본값은
appli
cation
/
x
-
www
-
form
-
urlencoded
입니다. 이 인코딩은 기본적이고 사용하기 쉬우며 익스프
레스도 이를 기본으로 지원합니다.
파일을 올려야 할 때는 조금 더 복잡합니다.
URL
인코딩을 통해 파일을 보내는 쉬운 방법은 없
고
multipart
/
form
-
data
인코딩을 사용해야 하는데, 익스프레스는 이 인코딩을 직접 지원
하지는 않습니다.
8.4
폼을 처리하는 다른 방법
에이잭스를 사용하지 않는다면 브라우저가 폼을 전송하게 해야 하는데, 이렇게 하면 페이지 리
로드를 피할 수 없습니다. 하지만 페이지를 리로드하는
방법
은 선택할 수 있습니다. 폼을 처리
할 때 고려해야 할 두 가지는 경로 (
action
)와 브라우저에 보낼 응답입니다.
권장하는 방법인
POST
메서드를 사용할 때는 일반적으로 폼을 표시하는 경로와 처리하는 경로
가 같습니다. 이 둘은
GET