http://70.12.220.93 : 8080 / edu / index.jsp
- IP가 70.12.220.93인 컴퓨터를 찾아감
- 8080 포트를 사용하고 있는 서버를 찾아감
- edu라는 이름의 웹 애플리케이션을 찾아감
- /index.jsp 파일을 찾아감
- 서블릿을 만드는 목적은 클라이언트에 서비스하기 위해서이다. 그렇다면 서버에 서블릿이 준비되어 있어야 한다.
웹서버에 서블릿이 어떤 구조로 있어야, 클라이언트가 서블릿에 접근하는지 알아보자.
* 서블릿은 웹서버에서 서비스되는 페이지이다.
- 클라이언트가 URL의 컴퓨터 주소와 포트 번호를 이용해 웹 서버까지 찾았다면 다음 목적지는 웹 애플리케이션이다.
웹서버가 클라이언트에 서비스하는 단위는 웹 애플리케이션이다. (그래서 개발 할 때 먼저 웹 애플리케이션을 생성한 후, 그 안에 서비스하고자 하는 파일들을 작성한다. 작성된 파일을 실행하려면 파일이 포함된 웹 애플리케이션을 웹 서버에 올린(deploy) 후 서비스를 요청한다.)
- 70.12.220.93 웹 애플리케이션을 서비스하는 웹 서버가 설치 된 컴퓨터 주소이다. 만일 서비스를 요청하는 클라이언트와 서버가 같은 컴퓨터에 있다면 컴퓨터의 주소(아이피 혹은 도메인) 대신 "localhost" 또는 "127.0.0.1"이라고 표시해도 된다. 이런 경우는 네트워크에서 컴퓨터를 찾는 과정이 생ㄹ약되어 오프라인 상태에서도 테스트할 수 있다.
- :8080 포트 번호로 서버를 찾아가기 위한 정보입니다. 컴퓨터 주소를 이용해 컴퓨터를 찾았다면 이제 해당 컴퓨터에서 서비스하는 서버 중 웹 서버를 찾을 차례이다.
- /edu 웹 이플리케이션 이름이다. 포트 번호로 웹 서버를 찾았다면 이제 웹 서버에서 서비스하는 애플리케이션을 찾아봐야 한다.
- /index.jsp 클라이언트가 요청한 최종 문서정보이다. 애플리케이션을 찾은 다음에는 해당 애플리케이션에서 서비스하는 문서를 찾아야 한다. 찾으려는 문서의 경로는 파일시스템의 디렉토리 구조 형태로 지정한다. 즉, 루트 디렉터리(/)로 시작하여 하위 디렉터리로 내려가면서 파일을 찾는 경로를 지정한다.
웹 애플리케이션 위치
서비스는 서버에서 애플리케이션 단위로 이루어 진다. 웹 서버마다 시작될 때 자동으로 애플리케이션으로 인식하여 서비스를 올려주는 디렉터리가 있다.
아파티 톰캣(Tomcat)은 톰캣을 설치한 디렉터리 하위의 webapps 디렉터리에 애플리케이션들이 있다.
(톰캣을 설치한 후 webapps 디렉터리의 모습이다. webapps에는 톰캣에서 예제로 제공하는 5개의 애플리케이션 디렉터리가 있고, 현재 톰캣 서버는 5개의 애플리케이션을 서비스하고 있다는 의미이다.)
실제 애플리케이션의 루트 디렉터리는 "WebContent" 입니다. 이 디렉터리가 톰캣의 webapps의 하위 디렉터리에 해당한다. 어차피 애플리케이션의 루트 디렉터리는 URL에서 "/"라는 기호로 접근하므로 디렉터리 이름이 무엇인지는 상관 없다.
※ 웹 애플리케이션은 하나의 디렉터리이다. 웹 애플리케이션이 공통으로 가져야 하는 디렉터리와 파일이 있다. 그것은 웹 애플리케이션 루트 디렉터리 바로 하위에 WEB-INF 디렉터리이며, WEB-INF 디렉터리에는 web.xml 파일이 있어야 한다. 또한, 현재 웹 어플리케이션에서 서비스하려는 클래스 파일이 있다면 WEB-INF/classes 디렉터리 하위에 있어야 한다. 그리고 클래스 파일들이 jar로 압축 되어 있다면 WEB-INF/lib 디렉터리에 있어야 한다. 왜냐하면 클래스 파일들이 WEB-INF/classes 또는 WEB-INF/lib에 있어야만 WAS를 구성하는 애플리케이션 서버들이 자동으로 인식할 수 있기 때문이다. web.xml 파일과 클래스 파일을 제외한 다른 파일들은 웹 애플리케이션 루트 디렉터리 하위의 어느 곳에 있어도 상관없다.
'JSP' 카테고리의 다른 글
포워딩(Forwarding) vs 리다이렉트(Redirect) 차이 (0) | 2020.12.06 |
---|---|
URI(Uniform Resource Identifier) (0) | 2020.04.30 |
웹서버와 웹 애플리케이션 서버(was) (0) | 2020.04.26 |
컨테이너란? (0) | 2020.04.26 |