반응형
  • 프로젝트 생성
    • 가장먼저, 프로젝트를 생성했었다.
  • Hello 서블릿
    • 그리고 Hello 서블릿을 가지고 서블릿을 만들어 보았었다.
  • HttpServletRequest - 개요
  • HttpServletRequest - 기본 사용법
    • 그다음, HttpServletRequest의 개요와 기본 사용법을 알아보았고,
    • 여기서 가장 중요한 것은 Http ServletRequest는 HTTP 요청 메시지의 스펙을 편리하게 사용할 수 있도록(조회할 수 있도록) 해주는 것이라는 것이다. 그리고 편리한 기본 기능들도 제공을 해줬다.
    • StartLine정보
    • Headers정보
    • HeaderUtils로 헤더 정보를 편리하게 제공해준다.
  • HTTP 요청 데이터 - 개요
    • 그리고 HTTP 요청 데이터에서는 클라이언트에서 서버로 헤더정보같은 부가적인 정보 말고, 진짜 내가 원하는 데이터 ex)검색 조건, 회원데이터 등등을 보낼 때
      즉, 클라이언트에서 서버로 메시지를 보낼 때는 주로 3가지 방법을 사용한다고 했다.
  • HTTP 요청 데이터 - GET 쿼리 파라미터
    • 첫번째는, HTTP GET방식으로 URL에 쿼리 파라미터로 보내는 것.
      이때는 메시지 바디에 데이터를 보내지 않는다. URL에 쿼리파라미터로 보낸다.
      (보통 검색, 필터, 페이징 등에서 많이 사용한다)
  • HTTP 요청 데이터 - POST HTML Form
    • 두번째는, HTML Form 인데, 회원 가입, 상품주문 등을 할 때 주로 사용된다.
      참고로 HTML Form 데이터를 보낼 때는 PUT이나 PATCH로 보낼 수 없다.
      HTML Spec상 HTML Form 데이터를 Body로 전송할 때는 POST방식만 허용된다.
      (스프링은 POST가 아니더라도 되던데요? 라고 할 수 있는데, 실제로 스프링 뒷단에서는 POST로 전송한다.)

      이것은, HTML기능이 재공하는 HTML Form에서 Form Submit을 하게 되면,
      웹브라우저가 HTTP 메시지를 만든다.
      그러면 HTTP messageBody에 데이터가 넘어간다.
      HTTP Spec은 HTTP메시지가 어떤 형태인지 꼭 알려줘야한다. 그것을 Content-Type으로 알려준다.
      content-type: application/x-www-form-urlencoded
      그런데, GET 쿼리 파라미터 방식과, HTML Form 방식은 모양이 똑같다. 그래서 서버에서 읽을 때는, request.getPrameter라는 것으로 두가지 방식을 읽을 수 있다. ("보통 이것을 요청파라미터를 읽는다"라고 한다)
  • 3번째 방법은 HTTP messageBody에 내가 원하는 데이터를 직접 집어넣는 것이다.
    • 그래서 클라이언트에서 서버로 전송하는데,
      단순히 텍스트를 전송할 수도 있고, JSON을 전송할 수도 있고, Binary데이터는 다 전송할 수 있다.(모든 데이터)
      응답에서도 마찬가지로 쓰인다.
  • HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트
  • HTTP 요청 데이터 - API 메시지 바디 - JSON
    • 3번째 방법은 주로 HTTP API 에서 많이 사용되는데, JSON 형태로 데이터를 전달한다.
    • POST, PUT, PATCH
  • HttpServletResponse - 기본 사용법
    • 응답은, 단순히 텍스트로 응답할 수도 있고, HTML을 응답할 수도 있고, API JSON으로 응답할 수도 있다.
    • Header들은
      • setStatus()로 상태코드를 지정할 수도 있고,
      • 여러가지 편리한, content, cookie, redirect 같은 기능들이 지원된다.
  • HTTP 응답 데이터 - 단순 텍스트, HTML
  • HTTP 응답 데이터 - API JSON
  • 정리

 

반응형