클라이언트 요청 방식 (GET 과 POST) 과 처리 방법
GET 방식
질의 문자열을 요청 정보 헤더의 URI 에 포함한다 > 서버로 전달되는 값이 브라우저 주소줄에 모두 노출된다.
데이터의 길이가 255바이트 미만으로 제한된다.
외부에 노출되어도 상관없는 데이터를 전달 할 때 적합한 요청방식
GET 방식으로 요청되는 상황
1. <a>태그를 클릭하여 요청하는 경우
2. 브라우저 주소 줄에 URL을 입력하여 요청하는 경우
3. <form>태그에서 method 속성을 생략하여 요청하는 경우
POST 방식
전달되는 질의 문자열이 요청정보의 몸체에 포함되어 전달 > 서버로 전달되는 값이 외부에 노출되지 않는다.
질의 문자열의 길이에 제한이 없다.
<form>태그를 사용해야만 요청 가능하다.
웹에서는 클라이언트가 전달하는 모든 정보들은 HTTP의 요청정보에 포함되어 서버로 전달되어 처리된다.
서버에서 요청정보를 처리할 때 사용하는 객체는 HttpServletRequest 이다.
클라이언트로부터 전달된 질의 문자열들을 서블릿에서 추출하는 방법 (메소드)
1. String getParameter(String name)
- 질의 문자열로 넘어온 값을 하나씩 추출할 때 사용 (name이 중복되지 않고 유일한 값으로 넘어올 때 사용)
2. String[] getParameterValues(String name)
- 같은 이름으로 여러개의 변수가 전달되었을 경우 한번에 모든값을 추출하여 String타입의 배열로 받을 때 사용
3.String getQueryString()
- 클라이언트가 전달한 질의 문자열 전체를 하나의 String으로 추출해준다. >> GET방식에서만 사용 가능
(URL의 ?뒤 내용을 전부 추출)
4.ServletInputStream getInputStream() throws IOException
-HTTP의 요청정보 몸체와 연결된 입력스트림을 생성하여 반환 >> POST 방식의 질의 문자열 전체를 한번에 추출할 때 사용가능
((SevletIntputStream객체)반환 후엔 readLine() 메소드를 사용)