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