DATA 분석 교육 과정 (2024.02~08)/JSP&Servlet

Servlet_ 데이터 전송 방식_ HTTP Method

글로리아-89 2024. 4. 12. 13:45
728x90
HTTP Method (데이터 전송 방식)

 

GET : 리소스 조회

POST : 요청 데이터 처리 및 등록

PUT : 리소스 덮어쓰기, 없을 경우 생성

PATCH : 리소스 부분 변경

DELETE : 리소스 삭제

 

service는 doGet, doPost를 구별해준다. ( doPost: post로만 된걸 받겠다)

 

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
반응형