[JSP] 웹 서버와 도우미 어플리케이션( CGI )

반응형



현재 꾸준히 계속하여 HTTP 프로토콜, 요청과 응답,
클라이언트가 서버와 통신하는 구조 등을 포스팅 하고 있습니다.

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



이제는 웹서버가 하는 일과 그걸 도와주는 역할을 하는 CGI 에 대해 포스팅 하겠습니다.




웹 서버가 할 수 없는 두가지의 일!

웹서버는 기본적으로 정적인 페이지만을 서비스 합니다.
단지 요청된 파일이나 자료를 찾아서 클라이언트로 넘겨주는 일만을 하는 것이지요.
그렇기 때문에 , 웹 서버는 요청이 있기 전까지 존재하지않던 페이지 ( 동적인 페이지 ) 를 서비스 할 수 없습니다.

아래는 웹서버가 할 수 없는 두가지의 일입니다.

1. 동적인 컨텐츠 생성 : 웹 서버는 정적인 페이지를 제공하는 일을 합니다.
                                 하지만
도우미(Helper) 어플리케이션의 도움을 받아(사용하여) 
                                 실시간 || 동적인 페이지를 제공할 수 있습니다.

2. 데이터 처리 : 웹 서버는 데이터를 넘겨 받는다 하여도 처리하지 못합니다.
                       결국 도우미 어플리케이션에 의해
파라미터를 넘기게 되고
                       응답하도록 만듭니다.




이런 역할을 하는 ( 동적인 페이지를 생성하여 주는 ) 도우미 어플리케이션을
CGI ( Common Gateway Interface ) 라고 부릅니다.


클라이언트와 서버, 도우미 어플리케이션의 동작 구조

쉽게 이해하기 위하여 직접 그림으로 표현해 봤습니다 ^^;


먼저 클라이언트가 서버로 동적페이지를 요청합니다.



요청받은 서버는 도우미 어플을 호출해야될 것임을 알고 GET 또는 POST 에 있는 파라미터(값)과 함께 도우미 어플리케이션으로 넘깁니다.


그 다음 도우미 어플리케이션은 동적 페이지를 생성하여 서버에게 HTML 형식으로 넘겨주는데요, 여기서 주의할점!
이 시점에서 웹 서버가 받은 페이지는 정적인 페이지입니다.


마지막으로 서버는 클라이언트에게 정적인 페이지를 넘겨줍니다.
하지만 그걸 받은 클라이언트는 이것이 동적인 페이지라고 생각하게되죠.


테스트 코드

따라서 동적인 페이지를 서비스 하려면 결국 도우미 어플리케이션의 도움을 받아야 합니다.
그것이 여기에선 서블릿이 됩니다 ^^

우선 JSP 페이지는 제외한 상태에서 서블릿만 이용하여
동적인 페이지를 서비스 해보는 테스트 코드를 만들어 보았습니다.



서블릿 코드입니다.
아직 현재 서블릿의 기능등을 포스팅 하지 않았기 때문에 우선은 이렇게 생겼구나..
(
자바와 똑같구나! )
라고 생각만 하시고 여기에선 어떻게 동적 페이지를 서비스 하는지만 확인하세용!

웹 컨테이너 (톰켓)을 스타트 한 뒤 테스트 하게되면
이제 멋지게도 동작하는 현재 시간을 표시해주는 동적인 페이지가 나온답니다 ^^


짝짝짝!!!
모두 끝낫다구요?
아니죠~

지금은 테스트를 위하여 서블릿 코드에다가 하드코딩으로 HTMl 코드를
println 출력문으로 작성하였습니다 ( 헉헉..힘들었습니다;;; )

실제 이게 좋진 않겠죠? 여러 오류들도 많이 날 수 있거니와,
코드도 너무나도 길어지겠죠.
따라서 JSP 라는것을 쓰면 되는데요,

유명한 기본입문서인 Head First Servlet & JSP 에 나오는 말을 인용하면
" HTML 안에다 자바 코드를 넣을 수 있는 것이 JSP 다! " 라고 표현 했습니다.
이 말은 맞는 말이긴 하지만, 제 개인적인 견해는 약간은 모순이 있다고 보여집니다.
극단적으로 JSP = Java + HTML 으로만 인식을 심어줄 수도 있기 때문입니다.
어쨋든,
위의 테스트코드처럼 자바 클래스 안에다가 HTML 코딩하는것이 아니라 그 반대로 하는것이지요!



약간 길어졌습니다만,
어쨋든 도우미 어플리케이션 ( 여기에선 서블릿 ) 의 기능을 알아보았습니다.

간단하죠?

그럼 뿅!




반응형

댓글

Designed by JB FACTORY