응답코드 | 의미 |
---|---|
100번대 | 정보, 서버가 요청을 받았고, 서버에 연결된 클라이언트는 작업을 계속 진행하라는 의미 |
200번대 | 성공, 요청을 성공적으로 받았으며 인식했고 수용했다는 의미 |
300번대 | 리다이렉션, 요청 완료를 위해 추가 작업 조치가 필요 |
400번대 | 클라이언트 오류, 요청의 문법이 잘못되었거나 요청을 처리할 수 없음 |
500번대 | 서버 오류, 서버가 명백히 유효한 요청에 대한 충족을 실패 |
response.setStatus(HttpServletResponse.SC_OK); //HTTP 응답코드
HttpServletResponse.SC_OK
대신에200
으로 해도 같은 의미
하지만HttpServletResponse.SC_OK
이 보기에 의미전달이 조금 더 직관적
response.setHeader("헤더이름","넣을 값");
response.setHeader("Content-type","text/plain");
response.setHeader("Pragma","no-cache");
response.setHeader("Content-type","text/plain");
response.setContentType("text/plain");
메서드 이름 | 설명 |
---|---|
setContentType | content 타입 지정, text/plain , application/json 등이 있음 |
setCharacterEncoding | charset설정 |
setContentLength | content 길이, 설정하지 않으면 WAS가 자동으로 생성 |
response.setHeader("Set-Cookie","myCookie=good;Max-Age=600");
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600);//600초
response.addCookie(cookie);
메서드 이름 | 설명 |
---|---|
addCookie | 쿠키 추가 |
setMaxAge | 쿠키 시간 설정 |
response.setStatus(HttpServletResponse.SC_FOUND);// HTTP 상태코드 302
response.setHeader("Location", "/basic/hello-form.html");
response.sendRedirect("/basic/hello-form.html");
메서드 이름 | 설명 |
---|---|
sendRedirect | redirect할 url 설정 |
PrintWriter writer = response.getWriter(); // writer 생성 후
writer.println("ok"); //원하는 텍스트
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println("<div>이건 html 파일 입니다. </div>");
writer.println("</body>");
writer.println("</html>");
Content-Type
은 text/html
로 정의하고 PrintWriter
로 html 작성
response.setContentType("application/json");
HelloData helloData = new HelloData();
helloData.setAge(25);
helloData.setUsername("SuJeong Gong");
//json스트링으로 변환
private ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(helloData);
response.getWriter().write(json);
Content-Type
은 application/json
로 정의하고 ObjectMapper
을 통해서 json string으로 변환
application/json
은 utf-8 형식을 사용하라고 정의 되어있기 때문에 charset을 설정하지 않아도 됨
근데response.getWriter()
를 사용하면 charset을 지정하는 파라미터를 자동으로 추가함
->response.getOutputStream()
을 사용해서 출력하면 해당 문제는 사라짐
출처
1. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
2. HTTP 상태 코드 정리