[JSP Servlet] 웹프로그래밍이란?
* inflearn.com 에 올라와 있는 [신입 프로그래머를 위한 JSP 강좌]를 토대로 정리합니다.
1. 웹프로그래밍이란?
- 웹프로그래밍은 서버와 클라이언트로 구성.
- 웹을 기반으로 작동되는 어플리케이션을 구현하는 것을 웹프로그래밍이라고 함.
URL의 구성
http://www.example.com:8080 /book/best |
- 프로토콜 HTTP : 웹서버와 웹클라이언트 사이에서 데이터를 주고 받기 위해 사용하는 통식 방식. TCP/IP 프로토콜 위에서 동작
서버와 클라이언트 모두 TCP/IP 동작에 필수적인 IP주소를 가져야 한다.
- 호스트 주소 : IP주소로도 나타낼수 있으나, DNS [ IP 주소를 문자열로 참조 ]를 이용하여 사용함.
- 포트 번호 : 통신환경에서( ex) TCP/UDP ) IP 내에서 실행되는 각 어플리케이션을 구분하여 통신하기 위하여 사용.
Well-Known Port 라고 하여, 표준화된 포트 번호가 존재함.
2. JSP / Servlet
- JSP : HTML 파일 내에서 Java 코드를 이용하여 구현하는 문서
- Servlet : Java로 이루어진 웹 프로그래밍 문서
2.1 JSP와 Servlet의 차이
- JSP 는 HTML문서내에 자바 코드가 삽입.
- Servlet 은 자바 코드 내에 HTML 문서가 삽입.
- JSP 는 '출력'이 주가 되며, Servlet은 출력을 위한 '로직'이 주가 됨.
* JSP 는 컴파일시, Servlet 으로 변환 이후, 해당 코드가 수행됩니다.
3. 웹프로그램의 동작
[출처 : http://timewizhan.tistory.com/entry/WAS-Web-Application-Server]
① 사용자가 웹 브라우저에 URL 주소를 입력한다.
② 웹 브라우저가 DNS 서버에 URL 주소의 호스트 이름을 전송하여 웹 서버의 IP 주소를 요청한다.
③ 웹 브라우저는 DNS로부터 받은 IP 주소와 80번 포트를 사용하여 웹 서버와 TCP 연결을 시도한다.
④ 웹 브라우저는 최초 화면의 내용을 얻기 위한 GET 명령을 전송한다.
⑤ 서버는 요청한 웹 문서를 웹 브라우저에 전송한다.
⑥ 웹 브라우저와 서버 사이의 TCP 연결을 해제한다.
⑦ 웹 브라우저는 해당 파일의 내용을 사용자가 볼 수 있게 화면에 표시한다.
[네이버 지식백과] 클라이언트-서버 모델 (데이터 통신과 컴퓨터 네트워크, 2013. 9. 10., 한빛아카데미(주))
이때, 웹서버는 필요한 로직이 있을 경우 웹어플리케이션 서버(WAS)에게 요청하고 값을 받아, 사용자에게 제공.
3.1 웹서버와 웹 어플리케이션 서버의 차이
웹서버(WS)는 [아파치]를 예로 들 수 있고, 웹 어플리케이션서버(WAS)는 [톰캣]을 예로 들수 있다.
WS 는 주로 '정적' 데이터를 출력하는데 반해서, WAS는 '동적'인 데이터를 위해 사용된다.
각 요청한 값 마다 다른 어플리케이션으로 연결되어 해당 로직에 의한 결과값을 얻기 위하여(동적인 결과) WAS를 사용.