minOS

서블릿 - HttpServletRequest 개요 본문

TIL/김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서블릿 - HttpServletRequest 개요

minOE 2024. 6. 18. 13:54
728x90

 

HttpServletRequest 역할

HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편하다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 `HttpServletRequest` 객체에 담아서 제공한다.

HttpServletRequest를 사용하면 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다.
POST /hello HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 19
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1

username=JohnDoe​

start line 
- HTTP 메소드
- URL
- 쿼리 스트링
- 스키마, 프로토콜
header
- 헤더 조회
body
- form 파라미터 형식 조회
- message body 데이터 직접 조회


HttpServletRequest 객체 여러가지 부가기능

- 임시 저장소 기능
저장: request.setAttribute(name, value)
조회: request.getAttribute(name)

- 세션 관리 기능
request.getSession(create: true)​


중요
HttpServletRequest, HttpServletResponse를 사용할 때 가장 중요한 점은 이 객체들이 HTTP 요청 메시지, HTTP 응답 메시지를 편리하게 사용하도록 도와주는 객체라는 점이다. 따라서 이 기능에 대해서 깊이있는 이해를 하려면 HTTP 스펙이 제공하는 요청, 응답 메시지를 이해해야 한다.
728x90