* HttpServlet 과 Http Method
# HttpServlet 추상 클래스를 상속받아서 service를 호출할 때의 과정
HttpServlet 추상 클래스
HttpServlet 추상 클래스를 상속받은 Servlet04에서 service를 호출
이때 service는 해당 Servlet04에서 구현한 메서드가 아니라 상속받은 Httpservlet의 service 메서드이다.
만약, Servlet04에 service 메서드가 있다면 해당 클래스의 메서드가 구현됐을 것이다.
HttpServlet 클래스의 service 메서드는 req, res를 파라미터로 받아서
this.service(requset, response)로 변환하여 요청을 처리해준다.
매우중요!
단, 여기서 this.service란, Servlet04에 있는 service를 먼저 찾을 것이다.
만약 Servlet04에 service 메서드가 존재하지않는다면 ,
HttpServletRequest와 HttpServletResponse를 파라미터로 받은 service가
호출될 것이다.
또 다시 호출된 service는 doHead, doPost, doPut은 Servlet04에서 메서드를 찾을 것이다.
그리고 해당 메서드는 Servlet04 클래스에 존재하기 때문에 Servlet04의
doget과 dopost가 호출된다.
요약하자면, HttpServlet을 상속받은 서블릿 클래스에서 service() 메서드를 오버라이딩하면
해당 서블릿 클래스의 service() 메서드가 먼저 호출되고, super.service(req, res)를 통해
HttpServlet의 service() 메서드를 호출하면 doGet(), doPost() 등의 메서드가 호출되며,
이 메서드들은 해당 서블릿 클래스에 정의된 로직을 수행하게 됩니다.
* Postman 설치하여 서버에 요청하기
https://www.postman.com/downloads/
GET, POST, HEAH 요청을 받음 !
put은 Servlet04에서 구현하지 않았기 때문에 상속받은 HttpServlet 의 service에서 구현하는
service의 doPut을 호출하고 오류 메시지를 Postman에서 출력해준다.
즉, 추상 클래스인 HttpServlet의 service() 메서드가 호출되고, 해당 service() 메서드는
다시 서브클래스에서 구현한 doPut() 메서드를 호출하는 형태이다.
* HTTP 프로토콜 - GEP 요청과 응답
https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5
GET 메서드에 해당하는 아래 5가지는 적어도 알자 !! (네이버 기술면접 출현)
GET HEAD POST PUT DELETE
최근에는 요청헤더 중에 Referer를 사용하지않는 추세이다.
Referer" 헤더는 사용자가 방문한 이전 페이지의 URL을 포함하므로,
사용자의 웹 브라우징 행동을 추적하는 데 사용될 수 있다.
때문에 사용자의 개인 정보와 웹 사용 패턴을 노출시킬 우려가 있어서이다.
* 상태코드
https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6
HTTP 상태코드 아는 대로 쓰시오.. (네이버 기술면접 출현)
* GET 요청과 POST 요청에서 데이터를 보내는 방법
* doGet, doPost 요청 예제