Spring

[스프링 MVC 1편] - 서블릿 HttpServletRequest(startLine, header)

study ticket 2023. 1. 2. 15:23

HttpServletRequest

HttpServletRequest 역할

  • 웹브라우저에서 들어온 Http요청메시지를 직접 파싱하기는 너무 반복적인 귀찮은 일이므로, 개발자대신 서블릿이 대신 파싱하여 HttpServletRequest객체에 담아 제공한다.
  • HTTP 요청 메시지에는 다음과같은 정보가 담겨있다.

START LINE

  • HTTP 메소드
  • URL
  • 쿼리 스트링
  • 스키마, 프로토콜

헤더

  • 헤더 조회

바디

  • form 파라미터 형식 조회
  • message body 데이터 직접 조회

 

HttpServletRequest - 기본 사용법

start-line 정보

private void printStartLine(HttpServletRequest request) {
    System.out.println("request.getMethod() = " + request.getMethod()); //GET
    System.out.println("request.getProtocol() = " + request.getProtocol()); //HTTP/1.1
    System.out.println("request.getScheme() = " + request.getScheme()); //http
    System.out.println("request.getRequestURL() = " + request.getRequestURL());
    System.out.println("request.getRequestURI() = " + request.getRequestURI());
    System.out.println("request.getQueryString() = " + request.getQueryString());
    System.out.println("request.isSecure() = " + request.isSecure()); //https 사용 유무
}

헤더 정보

//Header 모든 정보
private void printHeaders(HttpServletRequest request) {
    request.getHeaderNames().asIterator()
    .forEachRemaining(headerName -> System.out.println(headerName + ":" + request.getHeader(headerName)));
}

헤더 각각 조회

//Header 편리한 조회
private void printHeaderUtils(HttpServletRequest request) {

    System.out.println("[Host 편의 조회]");
    System.out.println("request.getServerName() = " +
    request.getServerName()); //Host 헤더
    System.out.println("request.getServerPort() = " +
    request.getServerPort()); //Host 헤더
    
    System.out.println("[Accept-Language 편의 조회]");
    request.getLocales().asIterator()
    .forEachRemaining(locale -> System.out.println("locale = " +
    locale));
    System.out.println("request.getLocale() = " + request.getLocale());

System.out.println("[cookie 편의 조회]");
    if (request.getCookies() != null) {
    for (Cookie cookie : request.getCookies()) {
    System.out.println(cookie.getName() + ": " + cookie.getValue());
    	}
    }
    
    System.out.println("[Content 편의 조회]");
    System.out.println("request.getContentType() = " + request.getContentType());
    System.out.println("request.getContentLength() = " + request.getContentLength());
    System.out.println("request.getCharacterEncoding() = " + request.getCharacterEncoding());
}

 


참고 강의

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

728x90