728x90
HttpServletRequest의 역할과 기능
- HTTP 요청 메시지를 개발자가 직접 파싱해서 사용하면 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱해준다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
- 임시 저장소 기능
- 해당 HTTP 요청이 시작부터 끝날 때까지 유지되는 임시 저장소 역할을 한다.
- 세션 관리 기능
HTTP 요청 데이터
- HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법은 주로 3가지 방법을 사용한다.
GET - 쿼리 파라미터
- http://localhost:8080/request?username=hello&age=20
- 쿼리파라미터는 ?로 시작하고, 추가 파라미터는 &로 구분한다.
- 메시지 바디없이 URL의 쿼리 파라미터에 데이터를 포함해서 전달한다.
- 검색, 필터, 페이징 등에서 많이 사용하는 방식이다.
POST - HTML Form
- POST의 HTML Form을 전송하면 웹브라우저가 HTTP 메시지를 만든다.
- 요청 URL : http://localhost:8080/request
- content-type : application/x-www-form-urlencoded
- message body : username=hello&age=20
- 회원가입, 상품 주문, HTML Form을 사용한다.
HTTP message body에 데이터를 직접 담아서 요청
- HTTP API에서 주로 사용한다.
- 데이터 형식은 JSON,XML,TEXT 등이 있지만 현재는 JSON을 주로 사용한다.
- JSON 형식 전송
- POST http://localhost:8080/request
- content-type : application/json
- message body : {"username": "hello", "age" :20}
- POST, PUT, PATCH를 사용할 수 있다.
HttpServletRequest의 역할과 기능
- HTTP 응답 메시지 생성
- HTTP 응답코드 지정
- 헤더 생성
- 바디 생성
- Content-Type, 쿠키, Redirect 등 편의 기능 제공
중요한 점
- HttpServletRequest, HttpServletResponse를 사용할 때 가장 중요한 점은 이 객체들이 HTTP 요청 메시지, 응답메시지를 편리하게 사용하도록 도와주는 객체라는 점이다. 따라서 이 기능에 대해 깊이있는 이해를 하려면 HTTP 스펙이 제공하는 요청, 응답메시지 자체를 이해해야 한다.
참고
김영한 - 스프링 MVC 1편
728x90
'[Spring] > Spring MVC' 카테고리의 다른 글
Spring에서 HTTP 통신을 통해 JSON 형식의 데이터를 주고 받을 때 사용하는 애너테이션을 정리해보자. (0) | 2023.08.14 |
---|---|
스프링 MVC의 구조 (0) | 2023.03.23 |
스프링 MVC에서의 프런트 컨트롤러(Front Controller) & 어댑터(Adapter) 패턴 (0) | 2023.03.22 |
자바에서의 MVC 패턴(Servlet -> JSP -> 스프링 MVC까지) (0) | 2023.03.16 |
트랜잭션 전파(Transaction Propaganda) & 트랜잭션 격리 레벨(Isolation Level) 1분 요약 정리 (0) | 2022.12.04 |