본문 바로가기

HTML

<form> method : get vs post

GET

- URL을 통해 데이터 name/value 쌍으로 전송 (개발자 도구에서 확인 가능)

- 캐시 될 수 있음

- 브라우저 히스토리에 남음

- 북마크 될 수 있음

- 보안이 필요한 데이터를 다룰때 사용하면 안됨

- 길이에 제한이 있음

- 데이터를 요청할 때만 사용됨

- select적인 성향을 가지고 있음

- 서버에서 데이터를 가져와서 보여주는 용도 (서버의 값이나 상태 등을 바꾸지 않음)

- 게시판의 리스트, 글 보기, 페이지 검색, 조회 같은 기능

- 전송 속도가 POST 보다 빠름


 서버에 데이터를 요청하는 경우 사용


POST

- http 바디를 통해 데이터를 전송

- 절대 캐시되지 않음

- 브라우저 히스토리에 남지 않음

- 북마크 될 수 없음

- 데이터 길이에 제한이 없음

- 서버의 값이나 상태를 바꾸기 위해서 사용


 서버의 데이터를 처리하는 경우 사용



form의 다른 속성

- action : 폼을 전송할 주소. 반드시 유효한 URL이어야 함

- name : 폼을 식별하기 위한 이름

- accept-charset : 폼 전송에 사용할 문자 인코딩 지정

(application/x-www-form-urlencoded : (기본값) 모든 문자를 인코딩

multipart/form-data : 어떠한 문자 인코딩도 하지 않음 . 주로 파일 업로드 컨트롤을 제공하는 경우 사용

text/plain : 공백이 + 문자로 변환되며 특수 문자를 인코딩 하지 않음)

- target : 입력된 폼 데이터가 전송된 후 반응하는 결과 페이지를 어떤 창에서 열지 지정

- method : 폼을 서버에 전송할 http 메소드를 지정 (GET 또는 POST)

- enctype : method 속성이 post일 때 사용할 인코딩 방법 

- autocomplete : 입력 폼의 자동 완성 여부를 지정 (html5)

- novalidate : 입력된 폼 데이터의 유효성 검사 여부를 지정 (html5)