[Spring Framework] 이미지 , resources mapping
mvc2에서는 웹콘텐츠 안에 이미지폴더
Spring에서는?
WEB-INF : 외부접속 차단
이미지태그 :
가짜 이름으로 이미지 태그 사용
개발자도구 - 네트워크
새로고침(F5)을 하면 url을 다시 요청
새로고침 할 때마다 한개의 리퀘스트, 한개의 리스폰스 주고 받을 것이라 추정
하지만 실제로는
리퀘스트 3개
네이버 리퀘스트는 더 많다
클라이언트가 리퀘스트를 쏘면 서버는 디스패처 서블릿에 넘긴다.
디스패터 서블렛이 컨트롤러에 물어봄
이미지태그라는 텍스트를 받아옴
이미지 자체는 서버에만 존재
이미지를 요구하는 2번째 리퀘스트 발생
1. 컨트롤러/라는 페이지 요청
2. 제이쿼리 cdn 요청 (제이쿼리 사이트에 요청)
3. 이미지 요청
사용자가 원하지 않는 리퀘스트를 보내도록 함
CSRF : 싸이월드 방문자 추적기, 해킹...
이미지를 어디에 넣어야 하고 어떻게 동작하는가?
url을 요청받았을 때 처리 과정
'abc.jpg' 라는 url을 요청받았을 때
'abc.jpg' 는 컨트롤러에 갈 url이 아님
servlet-context.xml
<annotation-driven/>
<annotation-driven/> 이 동작하는 바람에 이미지를 리퀘스트 맵핑에서 찾게 됨
그렇다고 지우면 이미지는 찾아지나 리퀘스트앱핑이 동작하지 않음
<resources/>
맵핑에 url이 "/resources/**" 로 되어있는 것들은 컨트롤러가 아닌 "/resources/"에서 찾도록
클라이언트의 요구 : 외부접근
resources 폴더가 WEB-INF 밖에 존재하는 이유!
이미지 요청이 컨트롤러로 들어간 상황
앞에 /resources/를 넣어주면
못찾아도 컨트롤러 오류 메세지는 나오지 않음
제대로 된 경로 ( /resources/img/late.jpg )를 넣어주면
로케이션은 실제 존재해야 하지만
mapping 정보는 변경 가능