반응형 Backend, Server53 [Servlet & JSP] HttpServletRequest 사용법 HttpServletRequest 역할 서블릿은 HTTP 요청 메시지를 개발자 대신 파싱해준다. 그 결과를 HttpServletRequest 객체에 담아서 제공한다. HTTP 요청 메시지 예시 START LINE - HTTP 메소드 - URL - 쿼리 스트링 - 스키마, 프로토콜 헤더 - 헤더 조회 바디 - form 파라미터 형식 조회 - message body 데이터 직접 조회 - start line 정보 더보기 //start line 정보 private void printStartLine(HttpServletRequest request) { System.out.println("--- REQUEST-LINE - start ---"); System.out.println("request.getMethod(.. 2022. 1. 10. [Servlet & JSP] Servlet 시작하기 서블릿 시작하기 @ServletComponentScan : 스프링부트에서 서블릿을 직접 등록해서 사용할 수 있음 @ServletComponentScan @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } } 서블릿 등록 방법: @WebServlet - name : 서블릿 이름, urlPatterns : URL 매핑 protected void service : HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 이 메서드를 실행함 @WebServlet(name = "hel.. 2022. 1. 10. [HTTP] HTTP 헤더 - (2) 캐시와 조건부 요청 캐시가 필요한 이유 - 데이터가 변경되지 않아도 동일한 데이터를 계속 네트워크를 통해 다운로드 받아야한다. - 인터넷 네트워크는 느리다 => 결국 느린 사용자 경험 캐시 작동 방식 - 최초 요청으로 서버로부터 받은 응답 결과를 웹브라우저는 브라우저 캐시에 저장 - 이 응답 메시지에는 캐시 유효 시간(cache-control: max-age=60)이 있다. - 이후 동일한 요청이 있을 때 캐시 유효 시간을 검증하여 유효하다면 캐시에서 이를 조회하면 된다. - 만약 유효 시간이 초과했다면? => 서버에 다시 요청하여 데이터를 받으면 된다. 근데 유효 시간이 초과해서 서버에 다시 요청을 했을 때, 서버의 데이터가 변경되었다면 당연히 데이터를 새로 받아야하겠지만, 변하지 않았을 경우 브라우저 캐시에 있는 캐시를.. 2022. 1. 8. [HTTP] HTTP 헤더 - (1) 일반 헤더 HTTP 헤더 구조 - 용도 : HTTP 전송에 필요한 모든 부가정보 - 표준 헤더가 너무 많음 - 필요시 임의의 헤더 추가 가능 최신 스펙에서는 표현이라는 단어를 사용한다. 표현은 요청이나 응답에서 전달할 실제 데이터를 의미한다. 표현 헤더(HTTP 헤더)는 표현 데이터(메시지 본문)를 해석할 수 있는 정보를 제공해준다. 표현 • Content-Type: 표현 데이터의 형식 - 예) text/html;charset=utf-8 - application/json - image/png • Content-Encoding: 표현 데이터의 압축 방식 - 표현 데이터를 압축하기 위해 사용 - 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가 - 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제 - 예) gzi.. 2022. 1. 7. [HTTP] HTTP 상태 코드 상태코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 => 실무에서 볼 일이 거의 없음 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 299같은 모르는 상태 코드가 오더라도 클라이언트는 상위 상태코드로 해석해서 처리함(299->2xx) 2xx (Successful) : 클라이언트의 요청을 성공적으로 처리 - 200 OK : 요청 성공 - 201 Cre.. 2022. 1. 7. [HTTP] HTTP 메서드 활용(데이터 전송 방식, HTTP API 설계 예시) 클라이언트에서 서버로 데이터 전송하는 방식은 크게 2가지 1. 쿼리 파라미터를 통한 데이터 전송 - GET - 주로 정렬 필터(검색어) 2. 메시지 바디를 통한 데이터 전송 - POST, PUT PATCH - 회원가입, 상품 주문, 리소스 등록 등 클라이언트에서 서버로 데이터 전송 - 4가지 상황 1. 정적 데이터 조회 - GET을 이용하며, 쿼리 파라미터 필요없음 2. 동적 데이터 조회 - GET을 이용하며, 쿼리 파라미터 사용 3. HTML Form 데이터 전송(HTML Form 전송은 GET, POST만 지원) - POST 전송 - 저장 : 웹브라우저가 Form을 이용해 HTTP 요청 메시지 생성 (Content-Type: application/x-www-form-urlencoded 사용) - GE.. 2022. 1. 6. 이전 1 2 3 4 5 6 7 8 9 다음 반응형