Skip to content

Latest commit

Β 

History

History
102 lines (75 loc) Β· 4.83 KB

File metadata and controls

102 lines (75 loc) Β· 4.83 KB

HTTP 톡신

HTTP둜 ν†΅μ‹ ν•˜λŠ” 방법

HTTP둜 톡신할 λ•Œ ν΄λΌμ΄μ–ΈνŠΈλŠ” HTTP λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μš”μ²­ λ©”μ‹œμ§€μ— λ„£μ–΄ μ „λ‹¬ν•˜κ³ , μ„œλ²„λŠ” μš”μ²­μ— λŒ€ν•œ μƒνƒœ μ½”λ“œλ₯Ό 응닡 λ©”μ‹œμ§€μ— λ„£μ–΄ μ „λ‹¬ν•©λ‹ˆλ‹€.

HTTP μƒνƒœμ½”λ“œ

ν΄λΌμ΄μ–ΈνŠΈκ°€ HTTP λ©”μ„œλ“œ 쀑 ν•˜λ‚˜λ‘œ μ„œλ²„μ— μš”μ²­μ„ 보낼 경우 μ„œλ²„λŠ” μš”μ²­μ— λŒ€ν•œ 응닡 μ½”λ“œλ₯Ό μƒνƒœ μ½”λ“œμ™€ ν•¨κ»˜ μ „λ‹¬ν•©λ‹ˆλ‹€.

μ΄λ•Œ μƒνƒœ μ½”λ“œλŠ” HTTP μš”μ²­μ— λŒ€ν•œ 응닡 κ²°κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ°œλ°œμžλŠ” μƒνƒœ μ½”λ“œλ₯Ό 보고 μš”μ²­μ΄ μ„±κ³΅ν–ˆλŠ”μ§€ ν˜Ήμ€ μ‹€νŒ¨ν–ˆλŠ”μ§€ νŒλ‹¨ν•˜κ³  μ μ ˆν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μƒνƒœμ½”λ“œλŠ” 5개의 그룹으둜 λ‚˜λ‰©λ‹ˆλ‹€.

κ·Έλ£Ή μƒνƒœμ½”λ“œ μ„€λͺ…
1xx 정보 응닡 μš”μ²­μ— λŒ€ν•œ μ²˜λ¦¬κ°€ 아직 μ§„ν–‰ μ€‘μ΄λΌλŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
2xx 성곡 응닡 μš”μ²­μ— λŒ€ν•œ 응닡을 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œν–ˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
3xx λ¦¬λ‹€μ΄λ ‰μ…˜ λ©”μ‹œμ§€ μš”μ²­μ΄ μ™„λ£Œν•˜κΈ° μœ„ν•΄ λ¦¬λ‹€μ΄λ ‰μ…˜(μƒˆ URL둜 μž¬μš”μ²­)이 ν•„μš”ν•˜λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
4xx ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜ 응닡 μš”μ²­μ„ μ²˜λ¦¬ν•˜λ˜ 쀑 ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
5xx μ„œλ²„ 였λ₯˜ 응닡 ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›μ•˜μœΌλ‚˜ 적절히 μ²˜λ¦¬ν•˜μ§€ λͺ»ν•΄ 응닡할 수 μ—†λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

Springμ—μ„œ μƒνƒœμ½”λ“œλ₯Ό μ μš©ν•˜λŠ” 방법

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 νŒŒμΌμ„ 리턴할 경우

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);
}