본문 바로가기

전체 글88

Exception handling 서블릿 컨테이너 예외처리의 두가지 방식 1. Exception(예외) => 무조건 500에러 2. response.sendError(Http 상태 코드, 오류 메시지); => 상태코드별 에러  (자바를 직접 실행하는 경우)1. Exception: 자바의 메인 메서드를 실행하는 경우 main이라는 이름의 스레드가 실행.2. 실행 도중에 예외를 잡지 못하고 처음 실행한 main 메서드를 넘어서 예외가 던져지면, 예외 정보 남기고 스레드 종료  (웹 애플리케이션)1. 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행.2. 애플리케이션에서 예외가 발생했는데, 어디서 try catch로 예외를 처리하면 문제가 없다.3. 하지만 애플리케이션에서 예외를 잡지 못하고 서블릿 바깥.. 2024. 6. 24.
spring MVC 1. 직접적으로 파일 경로를 알려주지 않고 컨트롤러에서 그대로 render를 해주고 싶으면 webapp - WEB-INF 폴더 안에 렌더할 파일을 넣는게 룰이다. 이 안의 파일은 외부에서 호출해도 그대로 호출되지 않는다대신 컨트롤러 (서블릿)에서 포워딩하는 과정을 거쳐야 한다.  2. redirect VS forwardredirect forward실제 클라이언트에 응답이 나갔다가 클라이언트가 다시 요청서버 내부에서 일어나는 호출클라이언트 인지 가능 URL경로 변경클라이언트가 인지 못함. 현재경로 localhost:8080/something/new ; vs     localhost:8080/save            localhost:8080/something/new/save 2024. 6. 15.
HTTPServletRequest, HTTPServletResponse HTTPServletRequest 1. GET - 쿼리스트링     /url?username=hi&age=20     메시지바디 없이, 쿼리스트링을 이용하여 데이터 포함해 전달     검색, 필터, 페이징 등에서 많이 사용 package hello.servlet.basic.request;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IO.. 2024. 6. 11.
HTTP 헤더 - 헤더2 (캐시, 조건부) 캐시가 없을때 response를 줄때   HTTP 헤더: 0.1M  HTTP 바디: 1.0M 이런식으로 줄 수 있다.이는 다시 요청해도 마찬가지다.즉, 요청시마다 네트워크를 이용해야 한다. 캐시가 있을 때응답헤더 ( cache-control: max-age=6060초동안은 캐시가 유효하다.)  캐시가 있다면  HTTP 헤더: 0.1M  HTTP 바디: 1.0M 응답 결과를 브라우저 캐시에 저장한다. 두번째 요청하는 경우 브라우저 캐시를 뒤져서 유효한 캐시가 있을 경우 캐시에서 조회한다.즉, 네트워크를 사용하지 않아도 됨.캐시 유효시간 초과시, 서버를 통해 데이터 다시 조회하고 캐시를 갱신 검증헤더와 조건부 요청1캐시 만료 후에도 서버에서 데이터를 변경하지 않을 경우 캐시 재사용가능, 다만 클라이언트와 서.. 2024. 6. 9.
HTTP 헤더 - 헤더1 헤더: HTTP 전송에 필요한 모든 부가정보 RFC7230~7235 Entity -> Representation = representation Metadata + Representation Data 표현 = 표현 메타데이터 + 표현데이터 HTTP BODY (message body): 메시지 본문을 통해 표현(representation)데이터 전달메시지 본문 = 페이로드(payload)표현은 요청이나 응답에서 전달할 실제 데이터표현 헤더는표현 데이터를 해석할 수 있는정보 제공 (데이터 유형 html json, 데이터 길이, 압축정보 등)  표현 - representation헤더:Content-Type: 표현 데이터의 형식  / ex) Content-Type: text/html;charset=UTF-8 or.. 2024. 6. 9.
HTTP 상태코드 response 코드 1xx (Informational) : 요청이 수신되어 처리중2xx (Successful): 요청 정상처리3xx (Redirection): 요청을 완료하려면 추가 행동이 필요4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청 수행 불가5xx (Server Error): 서버 오류, 서버가 정상 요청 처리 불가 클라이언트가 모르는 상태코드를 서버가 반환하면? 299 -> 200으로 인식 2XX200 => ok201 => Created : 요청이 성공해서 새로운 리소스가 생성됨202 => Accepted: 요청이 접수되었으나 처리가 완료되지 않음. ex_ 요청 접수 후 1시간 후 배치 프로세스가 요청 처리204 => No Content: 서버가 요청을 .. 2024. 6. 9.