response 내장 객체
사용자의 요청을 처리한 결과를 서버에서 웹 브라우저로 전달하는 정보를 저장.
즉, 서버는 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저로 보냄.
페이지 이동 관련 메소드
사용자가 새로운 페이지를 요청할 때와 같이 페이지를 강제로 이동하는것을 리다이렉션(redirection)이라 함.
** 페이지 이동 방법
- 포워드(forward) 방식
// forward 방식
<jsp:forward page="이동할 페이지" />
- 리다이렉트(redirect) 방식
// redirect 방식
response.sendRedirect("이동할 페이지")
페이지 이동 관련 메소드 종류
| 페이지 이동 관련 메소드 | 반환 유형 | 설명 |
| sendRedirect(String url) | void | 설정한 url 페이지로 강제 이동. |
응답 HTTP 헤더 관련 메소드
서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기븐을 제공.
헤더 정보에는 주로 서버에 대한 정보가 저장되어 있음.
헤더
- HTTP 메시지의 메타데이터(부가정보).서버 → 클라이언트: Content-Type, Set-Cookie, Cache-Control, Location …
- 예) 클라이언트 → 서버: User-Agent, Accept-Language …
헤더 특징
- 키:값 쌍, 대소문자 구분 없음, 여러 값 가질 수 있음(예: Accept).
- 본문(body) 내용과는 별개로, 전송/캐싱/인코딩/인증 등 동작을 좌우.
자주쓰는 헤더 예
- 요청(Request): Host, User-Agent, Accept, Accept-Language, Cookie, Authorization, If-Modified-Since
- 응답(Response): Content-Type, Content-Length, Cache-Control, ETag, Set-Cookie, Location(리다이렉트), Access-Control-Allow-*(CORS)
응답 HTTP 헤더 관련 메소드의 종류
| 응답 HTTP 헤더 관련 메소드 | 반환 유형 | 설명 |
| addCookie(Cookie cookie) | void | 쿠키를 추가 |
| addDateHeader(String name, long date) | void | 설정한 헤더 이름 name에 날짜/시간을 추가 |
| addHeader(String name, int value) | void | 설정한 헤더 name에 value를 추가한다. |
| addIntHeader(String name, long date) | void | 설정한 헤더 이름 name에 정수 값 value를 추가한다. |
| setDateHeader(String name, long date) | void | 설정한 헤더 이름 name에 날짜/시간을 설정한다. |
| setHeader(String name, String value) | void | 설정한 헤더 이름 name에 문자열 값 value를 설정한다 |
| setIntHeader(String name, int value) | void | 설정한 헤더 이름 name에 정수 값 value를 설정한다 |
| containsHeader(String name) | boolean | 설정한 헤더 이름 name이 HTTP 헤더에 포함되었는지 여부를 확인한다. 포함하고 있는 경우 true를 반환하고, 그렇지 않은 경우 false를 반환한다. |
| getHeader(String name) | String | 설정한 헤더 이름 name 값을 가져온다. |
응답 콘텐츠 관련 메소드
response 내장 객체는 웹 브라우저로 응답하기 위해 MIME 유형, 문자 인코딩, 오류 메세지, 상태 코드 등을 설정하고 가져오는 응답 콘텐츠 관련 메소드를 제공함.
응답 콘텐츠 관련 메소드의 종류
| 응답 콘텐츠 관련 메소드 | 반환 유형 | 설명 |
| setContentType(String type) | void | 웹 브라우저에 응답할 MIME 유형을 설정한다. |
| getContentType( ) | String | 웹 브라우저에 응답할 MIME 유형을 가져온다. |
| getCharacterEncoding(String charset) | void | 웹 브라우저에 응답할 문자 인코딩을 설정한다. |
| getCharacterEncoding( ) | String | 웹 브라우저에 응답할 문자 인코딩을 가져온다 |
| sendError(int status_code, String message) | void | 웹 브라우저에 응답할 오류(코드 및 오류 메시지)를 설정한다. |
| setStatus(int statuscode) | void | 웹 브라우저에 응답할 HTTP 코드를 설정한다. |
MIME (Multipurpose Internet Mail Extensions :다목적 인터넷 메일 확장)
이 데이터가 어떤 종류의 파일인지를 알려주는 표준 규격(꼬리표)입니다.
MIME타입이 "이 데이터는 텍스트입니다"또는 "이 데이터는 이미지(JPG)입니다"라고 정확하게 명시해 주는 '신분증' 역할을 합니다.
원래는 이메일(Mail)에서 텍스트 외에 이미지나 동영상 같은 여러 종류(Multipurpose)의 파일을 주고받기 위해 만들어진 규격이며, 지금은 이메일뿐만 아니라 인터넷(Web) 전체에서 표준으로 사용됩니다.
자주 쓰는 error code
- 4xx(클라이언트 오류)
| 400 | Bad Request | 요청 문법/형식이 잘못됨 |
| 401 | Unauthorized | 인증 필요·실패(토큰/세션 없음 등) |
| 403 | Forbidden | 권한 없음(인증돼도 금지) |
| 404 | Not Found | 리소스 없음 |
| 405 | Method Not Allowed | 메서드 미지원(예: GET만 허용). 보통 Allow 헤더 포함 |
| 406 | Not Acceptable | Accept 조건 충족 표현이 없음 |
| 408 | Request Timeout | 클라이언트가 너무 늦음 |
| 409 | Conflict | 리소스 상태 충돌(버전 충돌 등) |
| 410 | Gone | 예전에 있었지만 영구 삭제됨 |
| 411 | Length Required | 콘텐츠 길이 헤더 필요 |
| 412 | Precondition Failed | 조건부 요청 헤더 조건 불충족 |
| 413 | Content Too Large (=Payload Too Large) | 본문이 너무 큼 |
| 414 | URI Too Long | URL이 너무 김 |
| 415 | Unsupported Media Type | 본문의 MIME 타입 미지원 |
| 416 | Range Not Satisfiable | 범위요청이 유효하지 않음 |
| 417 | Expectation Failed | Expect 헤더 조건 불만족 |
| 421 | Misdirected Request | 잘못된 대상 서버로 전송됨 |
| 422 | Unprocessable Content (=Unprocessable Entity) | 형식은 맞지만 의미상 처리 불가(검증 실패 등) |
| 425 | Too Early | 재전송 시 위험—조기 처리 거부 |
| 426 | Upgrade Required | 프로토콜 업그레이드 요구 |
| 428 | Precondition Required | 선행조건 헤더 요구 |
| 429 | Too Many Requests | 과도한 요청(레이트 리밋) |
| 431 | Request Header Fields Too Large | 헤더가 너무 큼 |
| 451 | Unavailable For Legal Reasons | 법적 사유로 제공 불가 |
- 5xx 서버 오류
| 500 | Internal Server Error | 서버 내부 예외(디폴트) |
| 501 | Not Implemented | 기능/메서드 미구현 |
| 502 | Bad Gateway | 게이트웨이/프록시 상류 오류 |
| 503 | Service Unavailable | 점검/과부하로 일시 중단 |
| 504 | Gateway Timeout | 상류 서버 응답 지연 |
| 505 | HTTP Version Not Supported | HTTP 버전 미지원 |
| 506 | Variant Also Negotiates | 협상 구성 오류 |
| 507 | Insufficient Storage | 저장공간 부족(WebDAV 등) |
| 508 | Loop Detected | 순환 탐지(WebDAV) |
| 510 | Not Extended | 확장 필요 |
| 511 | Network Authentication Required | 네트워크 인증 필요(캡티브 포털 등) |
'JSP' 카테고리의 다른 글
| [JSP] 기본 내장(Implicit) 객체 정리 (1) | 2025.12.03 |
|---|---|
| [JSP] 내장 객체_3 (0) | 2025.12.03 |
| [JSP] 자바빈즈 액션 태그 (0) | 2025.12.03 |
| [JSP] 스크립트 태그 (0) | 2025.12.03 |
| [JSP] JSP(JavaServer Pages) (0) | 2025.12.03 |