HTTPλ‘ ν΅μ ν λ ν΄λΌμ΄μΈνΈλ HTTP λ©μλλ₯Ό μ¬μ©νμ¬ μμ² λ©μμ§μ λ£μ΄ μ λ¬νκ³ , μλ²λ μμ²μ λν μν μ½λλ₯Ό μλ΅ λ©μμ§μ λ£μ΄ μ λ¬ν©λλ€.
ν΄λΌμ΄μΈνΈκ° HTTP λ©μλ μ€ νλλ‘ μλ²μ μμ²μ λ³΄λΌ κ²½μ° μλ²λ μμ²μ λν μλ΅ μ½λλ₯Ό μν μ½λμ ν¨κ» μ λ¬ν©λλ€.
μ΄λ μν μ½λλ HTTP μμ²μ λν μλ΅ κ²°κ³Όλ₯Ό λνλ λλ€. κ°λ°μλ μν μ½λλ₯Ό λ³΄κ³ μμ²μ΄ μ±κ³΅νλμ§ νΉμ μ€ν¨νλμ§ νλ¨νκ³ μ μ νκ² μ²λ¦¬ν μ μμ΅λλ€.
μνμ½λλ 5κ°μ κ·Έλ£ΉμΌλ‘ λλ©λλ€.
| κ·Έλ£Ή | μνμ½λ | μ€λͺ |
|---|---|---|
| 1xx | μ 보 μλ΅ | μμ²μ λν μ²λ¦¬κ° μμ§ μ§ν μ€μ΄λΌλ μλ―Έμ λλ€. |
| 2xx | μ±κ³΅ μλ΅ | μμ²μ λν μλ΅μ μ±κ³΅μ μΌλ‘ μλ£νλ€λ μλ―Έμ λλ€. |
| 3xx | 리λ€μ΄λ μ λ©μμ§ | μμ²μ΄ μλ£νκΈ° μν΄ λ¦¬λ€μ΄λ μ (μ URLλ‘ μ¬μμ²)μ΄ νμνλ€λ μλ―Έμ λλ€. |
| 4xx | ν΄λΌμ΄μΈνΈ μ€λ₯ μλ΅ | μμ²μ μ²λ¦¬νλ μ€ ν΄λΌμ΄μΈνΈ μ€λ₯κ° λ°μνλ€λ μλ―Έμ λλ€. |
| 5xx | μλ² μ€λ₯ μλ΅ | ν΄λΌμ΄μΈνΈμ μμ²μ λ°μμΌλ μ μ ν μ²λ¦¬νμ§ λͺ»ν΄ μλ΅ν μ μλ€λ μλ―Έμ λλ€. |
Spring Bootμμλ κ°λ¨νκ² μν μ½λλ₯Ό μ μ©ν μ μμ΅λλ€.
@WebServlet(name="HeaderServlet", urlPatterns = "/res-header")
public class HeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
//μνμ½λ μΈν
response.setStatus(HttpServletResponse.SC_OK); //HTTP response μλ΅μ½λ μ§μ
//μλ΅ header
response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // cache 무ν¨ν
response.setHeader("test-header", "test-header" );//λ΄κ° μνλ ν€λλ₯Ό μμ±ν©λλ€.
response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600");
//body
PrintWriter writer = response.getWriter();
writer.println("success");
}HTML νμΌμ 리ν΄ν κ²½μ° κΈ°μ‘΄μ μμ±νλ λΆλΆμμ ContentTypeλ§ λ³κ²½ν΄μ λ΄λ³΄λ΄μ£Όλ©΄ λ©λλ€.
νμ§λ§ 보λλ°μ κ°μ΄ μ§μ μ μΌλ‘ μμ±νλ κ²μ΄ νλ κ²μ μ μ μμ΅λλ€.
@WebServlet(name="HeaderServlet", urlPatterns = "/res-header")
public class HeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
//μνμ½λ μΈν
response.setStatus(HttpServletResponse.SC_OK); //HTTP response μλ΅μ½λ μ§μ
//μλ΅ header
response.setHeader("Content-Type", "text/html");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // cache 무ν¨ν
response.setHeader("test-header", "test-header" );//λ΄κ° μνλ ν€λλ₯Ό μμ±ν©λλ€.
response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600");
//body
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println("<div>ν
μ€νΈ</div>");
writer.println("</body>");
writer.println("</html>");
}λλ¬Έμ Html νμΌμ μ°κ²°μ ν΄μ£ΌκΈ° μν΄ λ§ν¬λ₯Ό λ³κ²½νκ±°λ νΉμ λ€λ₯Έ μλΈλ¦ΏμΌλ‘ μ°κ²°μ νμ¬ JSP νμΌμ 보μ¬μ£Όλ λ°©μμ νν©λλ€.
// ν΄λΌμ΄μΈνΈμκ² μλ‘μ΄ URLλ‘ μ΄λνλΌλ λͺ
λ Ήμ΄κΈ° λλ¬Έμ μ¬μ©μκ° λ³νλ₯Ό μμμ±λλ€.
response.sendRedirect("/basic/post-form.html");
// μλ²λ΄μμ μμ²μ λ€λ₯Έ μλΈλ¦ΏμΌλ‘ 보λ΄λ κ²μ΄κΈ° λλ¬Έμ μ¬μ©μκ° λμΉμ±μ§ λͺ»ν©λλ€.
request.getRequestDispatcher("/another-servlet").forward(request, response);@WebServlet(name="AnotherServlet", urlPatterns = "/another-servlet")
public class AnotherServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
String viewPath = "/WEB-INF/post-form.jsp";
// forwardλ‘ λ°λΌλ³΄μκΈ° λλ¬Έμ μ£Όμμ λ³νλ μΌμ΄λμ§ μμ΅λλ€.
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
}