[Web] - [Network] Http Method

SHINYEJI·2023년 9월 14일
0

Back-End

목록 보기
22/24

GET

Client

Client에서 Http Mehtod를 GET으로 요청하면

    <form action="http://localhost:8080/test/main" method="get">
      <input type="text" id="t" name="c" />
      <button type="submit">요청보내기</button>
    </form>
  • form tag에서 submit요청을 보내면 name에 있는 변수에 input value가 저장되어 URL에 QueryString이 포함된 채로 요청된다.
  • 게다가, GET요청은 한글 parameter가 들어갈 때 브라우저가 자동으로 인코딩함으로 서버에서 따로 한글 인코딩 하지 않아도 된다.
    http://localhost:8080/test/MainServlet?c=안녕

    🤔 QueryString이란?
    URL 끝에 파라미터를 포함한 부분이다.
    여기서 QueryString은 ?c=안녕부분이다.

Server

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doGet() 실행");
		
		String a = request.getParameter("a");
		System.out.println("파라미터 a : "+a);
		System.out.println("요청 메소드 : "+ request.getMethod());
		System.out.println("요청 URI: "+ request.getRequestURI());
		
		response.getWriter().write("hello");
	}

doGet() 실행
파라미터 c: 안녕
요청 메소드 : GET
요청 URI: /test/MainServlet


POST

Client

    <form action="http://localhost:8080/test/MainServlet" method="post">
      <input type="text" id="t" name="c" />
      <button type="submit">요청보내기</button>
    </form>
  • post는 body에 정보를 담아서 보내기 때문에 QueryString에 보이지 않는다.

http://localhost:8080/test/MainServlet

Server

  • body에 담아 보내진 데이터를 서버에서 뽑아낼 수 있다.
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		System.out.println("doPost() 실행");
		
		String param = request.getParameter("c");
		System.out.println("파라미터  c: "+ param);
		System.out.println("요청 메소드 : "+ request.getMethod());
		System.out.println("요청 URI: "+ request.getRequestURI());
		
		response.getWriter().write("hello");
	}

doPost() 실행
파라미터 c: 안녕
요청 메소드 : POST
요청 URI: /test/MainServlet

0개의 댓글