DATA 분석 교육 과정 (2024.02~08)/JSP&Servlet
Servlet_ 데이터 전송 방식_ HTTP Method
글로리아-89
2024. 4. 12. 13:45
728x90
HTTP Method (데이터 전송 방식)
GET : 리소스 조회
POST : 요청 데이터 처리 및 등록
PUT : 리소스 덮어쓰기, 없을 경우 생성
PATCH : 리소스 부분 변경
DELETE : 리소스 삭제
GET (리소스 조회)
장점 : 캐시(임시저장소)에서 정보를 임시 저장하기 때문에 로딩이 길지 않고 빠르다.
보안에 중요하지 않은 (예: 검색어)를 GET방식으로 진행한다.
POST : 요청 데이터 처리 및 등록
쿼리스트링 방식:
- ?: 이후로부터 데이터 보내겠습니다. (시작점을 알림), key = value
- %, & : 값을 구분지어줌
<HTML>
<body>
<h1>GET방식</h1>
<ol>
<li>url에 데이터를 얹어서 쿼리 스트링 방식으로 전송</li>
<li>데이터 길이의 제한이 있다. (1024byte)</li>
<li>url에 데이터가 노출되기 때문에 보안에 취약</li>
<li>method 속성을 따로 지정하지 않으면 get방식으로 전송(기본값)</li>
<li>get은 임시저장소(캐시)에 저장되어있다가 보냄, post방식 보다 빠름</li>
</ol>
<form action="Ex08_getPost" method='get'>
DATA:
<input type='text' name='temp'>
<input type='submit'>
</form>
<hr>
<h1>POST 방식</h1>
<ol>
<li>패킷의 body에 데이터를 담아서 전송</li>
<li>데이터 길이의 제한이 없음</li>
<li>get방식보다 보안에 강함</li>
<li>method속성에 post 라고 지정해야함</li>
<li>데이터 타입 명시 필요
<ul>
<li>Application/x-www-form-urlencoded: 기본값, key= value 형태로 데이터
전송</li>
<li>multipart/form-data: 파일전송</li>
<li>text/plain : txt 형태로 전송</li>
</ul>
</li>
</ol>
<form action="Ex08_getPost" method='post'>
DATA:
<input type='text' name='temp'>
<input type='submit'>
</form>
</body>
<JAVA>
//GET방식 디코딩 >>톰캣에서 자동으로 설정
//Servers풀더 server.xml > 63번째 connector태그
// URIEncoding ="인코딩 방식" 속성 추가
//post 방식 디코딩
// 데이터가 들어있는 request객체에 디코딩 방식을 지정
//* 데이터를 꺼내오기 전에 디코딩 진행
request.setCharacterEncoding("UTF-8");
// get인지 post인지
String method = request.getMethod();
System.out.println("방식확인:"+method);
//데이터 가져오기
String data =request.getParameter("temp");
System.out.println("데이터:"+data);
출처: 스마트인재개발원
728x90
반응형