17.SSI


  • SSI란?

      Server Side Include의 약자로, 다른 파일의 내용이나, 프로그램을 서버에서 넣어주는 방법을 말한다. 브라우저의 입장에서 보면 단순한 하나의 HTML파일을 받아보게 된다. 당연히 서버의 일이 좀 늘기 때문에 성능이 약간 떨어진다.

      그럼, SSI로 뭘 할 수 있는가? 현재의 날짜나 HTML파일이 최종적으로 변경된 일자와 사이즈와 같은 정보를 HTML파일이 변경될 때 자동으로 반영되도록 할 수 있는 방법이 없었다. 그러나, SSI를 쓰게 되면 간단히 한줄로 이러한 일들을 할 수 있게 되는 것이다.

      일단 SSI를 쓰려면 웹서버의 옵션부터 조정해야한다.

  • 환경 설정

      Netscape Enterprise Server의 경우는 Content Management/Parse HTML을 선택하면 된다. (Netscape에서는 SSI라는 말대신에 Parse HTML이란 용어를 사용하고 있다.)

      NCSA 웹서버의 경우는 access.conf파일을 수정하면 된다. Options 항목중에 두가지 옵션이 있다. 모든 SSI를 적용시키려면, Options Includes를 추가하면 된다.(한줄만 적어주면 된다.) Exec기능(프로그램실행)을 막고 기본적인 SSI만 적용하려면, Options IncludesNoExec라는 옵션을 추가하면 된다. 이러한 것이 없거나 막혀 있을 때는 SSI가 지원되지 않는 것이다.

      특정한 디렉토리(/users/deadfire)에만 SSI를 적용하고 싶은 경우에는 access.conf파일에 다음3줄을 추가한다

    <Directory /users/deadfire>
    Options Includes
    </Directory>


      마지막으로 SSI로 파생되는 파일이 어떠한 MIME Type을 갖는지 기술해주는 것이 좋다. srm.conf파일에 MIME Type을 추가해야 한다. 즉, AddType text/x-server-parsed-html .html라인을 추가한다.

      두가지 옵션이 있는데, 하나는 SSI를 구동시킬 것인지이고, 다른 하나는 어느 수준까지 개방할 것인지 결정하게 된다. SSI는 웹상에서 보안에 취약할 수도 있으므로, 대개의 웹 서버에서는 이 옵션은 off되어있다. ( 어떤 웹서버의 경우는 아예 지원을 하지 않는 것도 있다. )

      첫 번째 옵션은 SSI를 구동시킬 것인지 여부이다.( exec라는 것을 사용할 것인지도 구분 되어 있다. exec란 쉽게 말하면 쉘 명령어도 사용할 수 있게 하는가이다. 일단 Test용으로 해봐야 하니까 exec까지 지원토록 하자. 나중에는 자기가 생각해보고 적절한 옵션을 지정해야 한다. )

      두 번째 옵션은 shtml파일에만 SSI를 적용토록 하자.

      shtml파일에만 적용하는 이유는 첫째가 웹서버 성능 때문이다. 보통의 경우 웹서버가 전송하는 HTML파일은 웹서버의 아무런 간섭없이 현재 디스크에 저장된 내용 그대로가 브라우저로 내려가게 된다. 그러나, SSI가 적용되면 웹서버는 HTML파일의 내부를 일일이 뒤져서 SSI구문을 대체하여 브라우저로 내려보내게 되는 것이다.

      거의 인터프리터와 같다고 보면 된다. 그러므로 모든 HTML파일에 SSI를 적용하게 되면 SSI구문이 없는 문서들도 웹서버가 해독하는 작업을 거치게 만들어 성능이 저하되므로, 특정한 파일타입 즉, shtml확장자를 가지는 파일만 SSI에 적용하는 것이 좋다.

- Last Update : 2001.7.9 by Deadfire(http://www.deadfire.net)

CGI with C 활용
브라우저구분
환경변수LIST
클라이언트풀
서버푸쉬
Form Mail
진행현황보기
Cookie
MD5
File Download
SSI
Redirection
File Upload
GD1.2
Database
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master