클라이언트 입장에서는 새로고침과 같은 요청을 여러번 반복요청할 수 있기에, 서버의 조회 처리에 관한 요청을 하는 것에 적합
클라이언트의 요청이 서버에서의 insert에 해당하는 요청이라면, 서버가 위협받을 수 있다.

클라이언트 입장에서는 새로고침과 같은 요청을 여러번 반복요청하더라도 redirect된 다른 요청에 대한 response를 받는다. 따라서 insert, update, delete 등 서버 내부적으로 관리되는 데이터에 영향을 미치는 작업을 처리하는 것에 적합
redirect를 포함하는 요청은 일반적으로 client가 지칭한 원래 요청과 다르기에 새로고침을 하더라도 forward에 비해 상대적으로 서버에 대한 위협 가능성이 적다

Connectionless(비연결성)
: 클라이언트와 서버가 통신할 당시에만 연결을 이루고 이후에는 연결을 갖지 않는다.
Stateless(무상태성)
: 클라이언트가 통신을 하더라도, 서버와 클라이언트가 서로의 상태를 공유하지않기에 않는다.
클라이언트(브라우저)가 상태를 유지하는 방법
클라이언트(브라우저)의 최초 요청 시 서버에 도달하는 쿠키에 서버에 대한 정보를 담아 클라이언트에 전달하면, 이후 통신에 해당 쿠키를 활용하여 브라우저에서는 서버에 대한 상태를 알 수 있다(무상태성 극복)
ex)
서버가 상태를 유지하는 방법
일반적으로 session ID는 쿠키에 담겨 전달되고, 서버는 브라우저의 최초 요청을 통해 세션을 생성한다.
클라이언트(브라우저)는 생성된 Session ID를 이후 서버 요청시에 쿠키를 통해 서버에 전달하고, 서버에서는 서블릿이 session ID에 맞는 정보를 전달할 수 있다.
ex)


cf)
Servlet 계층
Servlet (인터페이스) -> HttpServlet(추상클래스)Filter 계층
Filter (인터페이스) -> 직접구현Wrapper 계층
HttpServletRequest (인터페이스) -> HttpServletRequestWrapper (구현 클래스)
HttpServletResponse (인터페이스) -> HttpServletResponseWrapper (구현 클래스)