ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Servlet HTTP와 GET과 POST
    back-end&DB/Java 2023. 6. 14. 18:28
    728x90

    1. HTTP와 HTTP 패킷

    HTTP

    인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜

     

    HTTP 패킷

    Client가 server로 요청을 보냈을 때 보내는 데이터

     

     

    2. GET과 POST

    GET

    • URL로 데이터 전송
    • 전송하는 데이터의 길이에 한계(1024byte)
    • URL에 데이터가 노출 되어서 상대적으로 보안에 취약
    • method속성에 따로 작성하지 않으면 기본 값
    • Post방식 보다 빠름
      • 캐시(임시저장소)에 저장히기 때문에, 데이터를 다시 로딩하지 않아도 되서 속도가 빠르다.
    • ? : 데이터 표현의 시작점
    • 데이터는 key=value의 형태로 전송
    • & : key를 구분

     

    POST

    • 패킷의 Body 부분에 담아서 전송
    • 전송하는 데이터의 길이 제한 X
    • 데이터가 노출되지 않기 때문에 get방식에 비해서 보안에 강함
    • method속성에 post라고 명시
      • Application/x-www-form-form-urlencoded : 기본값
        • 데이터를 Key=value의 형태로 전송
      • Text/plain : 일반 txt형태로 전송
      • Multipart/form-data : 파일 전송
    <!-- html에 작성하는 문장 -->
    
    <h1> GET 방식 </h1>	
    	<form action="Ex08_getPost" method="get">
    	DATA : <input type="text" name="data">
    	<input type="submit" value="전송">
    	</form>
    
    <h1> POST 방식 </h1>
    <form action="Ex08_getPost" method="post">
    	DATA : <input type="text" name="data">
    	<input type="submit" value="전송">
    	</form>
    //Servlet에 작성하는 문장
    	//post 방식 인코딩
    	request.setCharacterEncoding("UTF-8");
    	
    	//get방식인지 post방식인지 확인하는 문장
    	String method = request.getMethod();
    	
    	String data = request.getParameter("data");
    	//get 방식 인코딩
    	response.setContentType("text/html; charset=UTF-8");
        // 웹 출력문
    	response.getWriter().print(data + " "+method);

    실행화면

    • get 방식
    • http://localhost:8081/sh/Ex08_getPost?data=안녕
    • server폴더 - server.xmi-63번째줄 Connector태그에 속성추가
    • URLEncoding="인코딩방식"
    •  

    • post방식
    • http://localhost:8081/sh/Ex08_getPost
    • 데이터가 담겨 있는 request객체에 인코딩방식 지정

    •  

     

    728x90

    'back-end&DB > Java' 카테고리의 다른 글

    JSP JSTL  (0) 2023.06.25
    JSP 필요성과 기본 태그  (0) 2023.06.15
    Servlet URL  (0) 2023.06.13
    servlet 인코딩 방식  (0) 2023.06.13
    JAVA 제네릭스와 제네릭클래스  (0) 2023.05.27
Designed by Tistory.