웹기반 애플리케이션

JSP📃_HttpServletResponse

비비펄 2023. 3. 8. 19:57

📕 response Line : 요청 처리 결과를 표현하는 상태코드(status code)

ex) sendError(sc) , setStatue(sc)

status code의 예

📌status code 종류
100번대: ING...(진행중임...) webSocket : Http의 하위 프로토콜 형태로 connectfull 구조를 가짐.
200번대: OK(success)
300번대: 클라이언트의 다음 액션에 대한 유도. body가 없이 line+header로만 응답이 구성됨.
                304 : Not Modified(수정되지 않음)
                301/302/307 : Moved(이동됨) + Location(이동된 새로운 위치) 헤더와 병용. 

400번대 : client side failure
                400 : Bad Request : 잘못된 요청, 요청 데이터 검증에 활용.
                404 : Not Found : 찾을수 없음, 자원이 없음, 제공할 서비스가 없음
                405 : Method Now Allowed : do계열의 메소드를 오버라이딩 하지 않았을때 발생. 
                401/403 : 어플리케이션을 보호, 권한여부를 검증(허가받은 유저? 허가받지 않은 유저?)
                                Authentication(인증)/Authorization(인가) 기반의 접근제어에 활용
                406/415 : 요청이나 응답의 컨텐츠 타입과 관련하여 활용.
                406 : Not Acceptable - accept request header에 있는 MIME 컴텐츠를 생성할 수 없음.
                415 : UnSupported Media Type - request body content 를 해석할 수 없음.
500번대 : server side failure , 500(internal server error)

                클라이언트에게 서버의 정보를 노출하지 마라. =>따라서 오류코드가 명확하지않고 두루뭉술함.

 

📕  response Header : response content에 대한 meta data, Content-*

ex) setHeader(name,value), setIntHeader(name, intValue), setDateHeader(name, longValue)

      addHeader(name, value)
1) response body content에 대한 설정 : Content-*
2) 캐시 제어를 위한 설정 : Cache-Control

응답 헤더를 이용한 캐시 제어

	Pragma(http 1.0), Cache-Control(http 1.1), Expires(all version) 
	
	Pragma(http 1.0), Cache-Control(http 1.1)
		- public 범용캐시로 저장할때
		- private 제한적으로 현재 계정 안에서만 이용할 수 있는 캐시
		- no-cahe 캐싱하지 않는다 + 저장된 캐시가 있다면 사용전에 만료여부를 항상 확인한다.
		- no-store 캐싱하지 않는다
		- must-vaildate 검증한다
		- max-ages : miliseconds


3) auto request : Refresh

주기적인 자동요청 발생

1. server side : response header (Refresh) 
2. client side
	- JS : scheduling function (setTimeout, setInterval)
	- HTML : meta


4) flow control : Location

📕 response Body[Content-Body, Message-Body] : 클라이언트가 요청한 컨텐츠 자체.