웹 사이트 규칙 및 글로벌 웹 설정

웹 사이트 규칙은 웹 사이트의 구성을 유지하도록 지원하는 문서입니다. 웹 사이트 규칙은 웹 사이트 문서에 대한 응답 문서로 작성되며, 해당되는 특정 웹 사이트 문서에만 적용됩니다. 규칙을 두 개 이상의 웹 사이트 문서에 적용하고자 할 경우, 규칙 문서를 한 웹 사이트 문서에서 다른 웹 사이트 문서로 복사합니다.

웹 사이트 규칙은 다음 두 가지 기본 용도로 사용됩니다.

  • 관리자는 사용자에게 친숙한 웹 사이트 탐색 구조를 작성할 수 있으며, 이 구조는 웹 사이트의 실제 물리적 구성과 상관없습니다.
  • 사이트 일부를 기존 연결 또는 브라우저 책갈피 없이 재배치하거나 재구성할 수 있습니다.

웹 사이트 규칙을 수신 URL에 적용하려면, 먼저 URL이 필터링 및 확인 규칙 및 절차의 사전 정의된 집합에 따라 일반화되어야 합니다. 이러한 절차는 처리를 위해 URL을 애플리케이션에 전달하기 전에 안전한 형식으로 URL을 단축합니다. 일단 URL이 일반화되면, HTTP 태스크는 웹 사이트에 대해 지정된 규칙을 사용하여 URL을 어떤 식으로든 변경해야 하는지를 결정합니다.

주: URL 경로만이 패턴이 일치하는지 확인하는데 사용됩니다. 질의 문자열이 애플리케이션의 사용을 위해 저장됩니다. 규칙의 수신 URL 패턴 필드에 지정하는 모든 패턴에는 호스트 이름이나 질의 문자열이 포함되어서는 안됩니다.

웹 사이트 규칙에는 4가지 종류가 있습니다. 웹 사이트 문서에 대해 두 개 이상의 웹 사이트 규칙이 작성되었을 경우, 규칙 문서는 다음과 같은 순서로 평가됩니다.

  • 대체
  • 리디렉션
  • 디렉토리
  • HTTP 응답 머리글

대체 규칙

대체 규칙은 수신 URL의 여러 부분을 새로운 문자열로 변경합니다. 웹 사이트를 재구성하려고 하지만 사이트의 모든 연결을 재작성하지 않거나 또는 복잡한 URL에 대해 친숙한 별명을 제공하려는 경우 대체 규칙이 사용됩니다.

예를 들어 대체 규칙은 웹 사이트에서 여러 개의 파일을 한 디렉토리에서 다른 디렉토리로 이동시킬 경우에 유용합니다. 이전의 디렉토리를 참조하는 모든 연결을 수정하는 대신, 대체 규칙은 이전의 디렉토리를 새 디렉토리로 맵핑합니다.

대체 규칙의 수신 및 교체 패턴은 각각 하나 이상의 와일드카드를 지정해야 합니다. 패턴의 한 부분에 와일드카드를 명시적으로 포함하지 않는 경우, HTTP 태스크는 규칙을 내부 테이블에 저장할 때 자동으로 /*를 첨부합니다.

리디렉션 규칙

리디렉션 규칙은 수신 URL의 방향을 다른 URL로 리디렉션합니다. 두 가지 유형의 리디렉션 규칙(외부 리디렉션 및 내부 리디렉션)이 있습니다. 외부 리디렉션 규칙을 통해 서버는 브라우저가 요청한 파일 또는 다른 자원이 다른 URL에 있다는 것을 브라우저에게 알려줍니다. 수신 URL 경로가 외부의 리디렉션 규칙과 일치하는 경우, HTTP 태스크는 리디렉션 패턴에 따라 새 URL을 생성하고 이 URL을 즉시 브라우저에 반환합니다. 외부적인 리디렉션 규칙을 통해 기존 링크 및 책갈피를 계속 사용할 수 있으며 새 책갈피가 새 위치로 연결되도록 보장할 수 있습니다.

내부 리디렉션 규칙은 대체 규칙과 같은 역할을 합니다. HTTP 태스크가 새 URL을 생성한 후 이를 재정상화하기 때문입니다. 그러나, 두 가지 차이점이 있습니다. 첫째, 리디렉션 테이블은 반복적으로 검색되므로, 여러 개의 리디렉션 규칙을 작성하고 중첩할 수 있습니다. 둘째, 내부 리디렉션 규칙은 와일드카드 문자의 사용을 요구하지 않습니다. 그러므로, URL 경로에서 정확한 일치를 강제로 설정하려는 경우, 대체 규칙 대신 내부 리디렉션 규칙을 사용할 수 있습니다.

들어오는 URL 경로가 내부 리디렉션 규칙과 일치하는 경우, HTTP 태스크는 새 경로를 생성하고 경로를 정상화하며 리디렉션 규칙 테이블을 재검색합니다. HTTP 태스크가 리디렉션 규칙 테이블에 대해 반복적인 검색을 수행하기 때문에, 적용된 대체 또는 리디렉션에 관계없이 URL을 포착하는 광범위한 리디렉션 규칙을 작성할 수 있습니다.

주: 반복적인 검색을 한다는 것은 서로 일치는 리디렉션 규칙을 작성할 경우 반복이 무제한 계속될 가능성이 있다는 것을 의미합니다. 이러한 가능성을 없애기 위해 HTTP 태스크는 반복 횟수를 10으로 제한하고 있습니다.

리디렉션 규칙에서 와일드 카드를 사용할 수는 있지만, 필수적인 것은 아닙니다.

디렉토리 규칙

디렉토리 규칙은 파일 시스템 디렉토리를 URL 패턴으로 맵핑합니다. 웹 서버가 패턴과 일치하는 URL을 수신하면, 서버는 URL이 그 디렉토리에서 자원을 요청하는 것으로 가정합니다.

Domino® 웹 서버를 설치하면, 몇 개의 파일 자원 디렉토리가 자동으로 작성됩니다. 이러한 기본 디렉토리는 웹 사이트 문서의 [구성] 탭에서 정의한 디렉토리 규칙에 의해 맵핑됩니다. 웹 서버가 시작되면, 웹 서버는 자동으로 내부 규칙을 작성하여 이 디렉토리를 URL 패턴으로 맵핑합니다. 세 개의 기본 디렉토리는 다음과 같습니다.

  • 비그래픽 파일을 위한 HTML 디렉토리
  • .GIF와 같은 그래픽 이미지를 위한 Icon 디렉토리
  • CGI 프로그램을 위한 CGI 디렉토리

디렉토리 규칙은 (HTML 파일과 그래픽 파일과 같은) 직접 읽을 파일과 (CGI 프로그램과 같이) 운영 체제가 불러오고 실행할 실행 프로그램의 위치를 맵핑하기 위해서만 사용할 수 있습니다. 디렉토리 규칙은 다른 유형의 자원 위치(예: Domino® 데이터베이스 또는 Java 서블릿)를 맵핑하는 데 사용할 수 있습니다.

디렉토리 웹 사이트 규칙을 작성할 때 파일 시스템 디렉토리에 읽기 또는 실행 권한을 지정합니다. 올바른 액세스 권한을 선택하는 것은 매우 중요합니다. CGI 프로그램이 들어있는 디렉토리에만 실행 권한을 사용할 수 있습니다. 다른 모든 디렉토리는 읽기 권한을 가져야 합니다. 액세스 레벨을 지정할 경우, 예상치 못한 결과가 일어날 수 있습니다. 예를 들어 CGI 디렉토리에 대해 읽기 권한을 지정할 경우, 브라우저가 CGI 프로그램을 위한 URL을 발송하면 서버는 프로그램을 실행하는 대신 프로그램의 소스 코드를 반환하며, 이는 심각한 보안 위반으로 이어질 수 있습니다.

디렉토리 규칙은 운영 체제가 집행하는 파일 액세스 허가를 다시 정의할 수 없습니다.

주: 액세스 레벨은 지정된 디렉토리 아래의 모든 하위 디렉토리가 이어받습니다.

HTTP 응답 머리글 규칙

모든 HTTP 브라우저 요청과 서버 응답은 전송 중인 데이터에 대해 설명하는 머리글의 집합으로 시작합니다. HTTP 응답 헤더 규칙을 통해 애플리케이션 설계자는 지정된 URL 패턴과 일치하는 요청에 대한 응답을 사용하여 Domino®가 전송하는 헤더(예: HTTP 응답에 대한 사용자 정의 헤더 또는 만료 헤더)를 사용자 정의할 수 있습니다.

응답 규칙의 가장 중요한 용도는 브라우저 캐시의 성능을 향상시키는 것입니다. 애플리케이션 설계자는 브라우저에게 캐시되는 자료의 가변성에 대한 중요한 정보를 제공하는 머리글을 추가할 수 있습니다.

캐시 머리글에는 최종 수정된 머리글, 만료 머리글, 그리고 캐시 제어 머리글이 있습니다. 최종 수정된 머리글은 응답을 생성하기 위해 사용된 자원이 언제 마지막으로 변경되었는지를 나타냅니다. 만료 머리글은 브라우저에게 자원이 언제 변경될 것인지 알려 줍니다. 설계자는 자원 변경이 예상되는 시기에 따라 만료 머리글을 응답에 추가할 규칙을 정의할 수 있습니다. 캐시 제어 머리글은 캐시가 금지된 응답을 위한 "캐시 안 함" 또는 캐시가 가능하지만 특정 브라우저 구성에 한정되는 응답을 위한 "개인용"과 같은 분명한 지시사항을 브라우저와 프록시 서버 캐시에 제공합니다.

응답 규칙을 사용하여 머리글을 사용자 정의할 수도 있습니다. 예를 들어 특정한 오류 메시지(예: 사용자가 애플리케이션을 사용할 권한이 없는 경우)를 표시하는 사용자 정의 머리글에 대한 응답 규칙을 작성할 수 있습니다.

다른 웹 사이트 규칙과는 달리, 응답 규칙은 HTTP 태스크가 응답을 브라우저로 전송하기 직전에 나가는 응답에 적용됩니다. 응답 머리글 규칙의 경우, 패턴은 URL에 대체 및 리디렉션 규칙이 적용된 후에 URL의 최종 형태와 대조됩니다. 예를 들어, /help/*/support.nsf/helpview/*로 변환하는 대체 규칙이 있고 응답과 일치하는 응답 규칙을 작성하고자 하는 경우, 응답 규칙에 대한 패턴은 /support.nsf/helpview/*가 되어야 합니다.

패턴에는 하나 이상의 별표가 와일드카드 문자로 포함될 수 있습니다. 예를 들어, 패턴 /*/catalog/*.htm은 URL /petstore/catalog/food.htm, /clothing/catalog/thumbnails.htm 등과 일치하게 됩니다. 응답 규칙에는 와일드카드가 필수적인 것은 아닙니다. 그러므로, /cgi-bin/account.pl과 같은 특정한 자원과 일치하는 규칙을 작성할 수 있습니다. 또한, 다른 모든 규칙에서와 마찬가지로, 들어오는 패턴에는 질의 문자열이 포함될 수 없습니다.

응답 머리글 규칙은 그것이 URL 패턴과 일치해야 할 뿐만 아니라 HTTP 응답 상태 코드와도 일치해야 한다는 점에서 다른 규칙과 다릅니다. HTTP 응답 코드 필드에 하나 이상의 상태 코드를 지정해야 합니다.

글로벌 웹 설정

글로벌 웹 설정을 통해 웹 규칙을 여러 웹 사이트에 적용할 수 있습니다. 글로벌 웹 설정 문서의 이름을 정의하고 글로벌 웹 설정이 적용되는 서버를 지정합니다. 그런 다음, 글로벌 웹 설정 문서에 대한 웹 규칙 문서를 작성합니다. 그러면 웹 규칙은 글로벌 웹 설정 문서에서 지정한 서버가 호스트하는 모든 웹 사이트에 적용됩니다.

글로벌 웹 설정 문서와 관련 웹 사이트 규칙 문서는 자동으로 작성되지 않습니다. 웹 환경에서 글로벌 웹 설정 문서와 웹 사이트 규칙을 사용하고자 할 경우, 이를 수동으로 작성해야 합니다.