병갈이 블록

GET, POST방식에 대한 이해. 본문

IT(Old)/JSP 공부 기록

GET, POST방식에 대한 이해.

woojang 2017. 6. 17. 16:34

전송시!!

- GET : 주소에 쿼리 문자열을 추가하여 자료전송. 요청줄에 포함된 URI에 쿼리 문자열이 포함되어 있다. 

(길이에 제한 있음. URI란? <-참고)

- POST : 요청줄, 헤더 이 외의 별도로 데이터 영역을 포함시켜 이 데이터 영역에 자료를 넣어 전송. 

(길이에 제한 없음)


서버에서 파라미터를 받을때!!

1. POST :(클라이언트)에서 파라미터를 인코딩할때(전송하기 위해서) 사용한 케릭터 셋으로 charset을 설정해야 

자료를 정상적으로 받을 수 있음.


ex. 클라이언트(utf-8)이라면 -> request.setCharacterEncoding("utf-8"); 이렇게 케릭터셋을 설정.

(별도로 getCharacterEncoding() <-> setCharacterEncoding("포멧") 서로 반대의 역할을 함. get은 charset을 가져오고 set은 charset을 설정하고)

단!!!!!

자료를 받기 전, 왠만하면 가장 윗줄 어디쯤, 파라미터 값을 받기 전에 <% request.setCharacterEncoding("포멧") %>을 삽입해야됨.

지정하지 않거나 자료를 받는 중간에 삽입된다면 무시되고 기본값인 ISO-8859-1로 charset이 설정되어 문제가 생길 수 있음.


2. GET : 인코딩의 결정방식에 따라 디코딩방식을 결정해야됨.

※GET으로 파라미터 전송시 웹 페이지 charset을 사용할때와 웹 브라우저마다 각자 설정된 charset을 사용할 때가 있다.

1. 전송한 웹페이지 charset 사용

- <a>태그를 이용하여 링크주소에 쿼리문자열이 포함하여 전송(접속)할때.

- form태그에 method를 GET으로 지정하여 폼을 전송할때.

2. 웹 브라우저마다 각자 기본으로 설정된 charset 사용.

- 웹 브라우저에 직접 쿼리 문자열 입력시.

※웹 브라우저마다, WAS마다 각각 기본으로 셋팅된 charset이 있다. 즉, 웹의 charset과 WAS의 charset이 다를경우 올바른 파라미터값을 못가져온다.

※GET방식으로 전송된(1, 2번 모두 해당) 파라미터에 대해서 request.setCharacterEncoding("포멧")이 적용되지 않는다. 

※이부분에서 웹 표준으로 지정된 포멧이 없다고 함. 그래서 각자 알아서 해석하는 일이 생김.


★☆ WAS에서 GET으로 전송된 파라미터를 위한 인코딩 처리(톰켓 8기준) 

톰켓폴더/conf/server.xml 파일을 열어 <Connector>태그에 useBodyEncodingForURI="true" 속성을 추가한다.

이렇게 하면 POST방식을 처리할때처럼 request.setCharacterEncoding("포멧") 함수를 사용할 수 있다.


(모든 자료는 교육목적이 아니라 제가 공부하는것들을 정리하기위해 올리는 것입니다. 그래서 틀린 정보가 많을 수 있으니 교정해주시는건 감사히 듣겠습니다.^^)


'IT(Old) > JSP 공부 기록' 카테고리의 다른 글

Buffer와 autoFlush  (0) 2017.06.19
Response 기본객체  (0) 2017.06.18
요청 헤더  (0) 2017.06.17
Request기본 객체  (0) 2017.06.17
charset과 pageEncoding에 대해서...  (0) 2017.06.17
Comments