정적 및 동적 웹 페이지. 정적 및 동적 웹 페이지. 데이터베이스 모델 개발

사이트에 대한 직접 색인 링크- 금지자에 의해 차단되지 않은 링크입니다. HTML 태그및/또는 속성은 물론 리디렉션(리디렉션) 없이도 가능합니다. 예를 들어, 귀하의 웹사이트/블로그에 내 사이트에 대한 링크를 배치하기로 결정한 경우 nofollow 금지 속성을 사용하여 검색 로봇에서 해당 링크를 숨기지 않는 것이 좋습니다. 내 페이지 중 하나에 링크하기로 결정한 경우 색인 생성을 위해 링크를여십시오. 내 사이트에 대한 직접 색인 링크가 있으면 감사하겠습니다.
귀하의 웹사이트/블로그에 이 사이트에서 빌린 그래픽/텍스트 콘텐츠 또는 단편/인용문을 사용하는 경우 웹사이트 링크에는 금지 속성 및/또는 리디렉션이 없어야 합니다.

TFP와 FTP는 무엇이며 차이점은 무엇입니까?

약어 TFP와 FTP는 서로 공통점이 없습니다. 이들을 하나로 묶는 유일한 것은 누군가를 혼란스럽게 할 수 있는 발음의 조화입니다.
TFP - (인쇄 시간), "인쇄물당 시간"으로 번역됩니다. 이 용어는 사진가와 패션 모델이 사용합니다. TFP는 사진 산업의 대표자들이 사용하는 일종의 통화입니다. TFP는 저작권 등에 관한 제반 문제를 피하기 위해 원칙적으로 모델과 사진 작가 간의 합의에 의해 보장됩니다.
모델이 TFP에 동의하면 이는 그녀가 일정 기간 동안 무료로 작업할 준비가 되었으며 작업에 대해 사진(처리 여부에 관계없이 전부 또는 일부)을 받게 된다는 의미입니다.
이제 FTP에 대해 알아보겠습니다.
FTP(파일 전송 프로토콜)웹 개발자 등이 사용하는 파일 전송 프로토콜입니다. 이 프로토콜을 통해 서버와 작업하려면 다음을 사용하십시오. FTP 클라이언트 FTP 서버와 직접 작동하는 프로그램입니다.
FTP 프로토콜은 HTML, PHP, CSS, JPEG 등과 같은 네트워크 문서를 개발자의 개인 장치에서 호스팅 서버로 전송하는 데 사용됩니다. 서버에서 개발자의 개인 장치로 네트워크 문서를 다운로드하는 데 동일한 프로토콜이 사용됩니다.

파일 확장자란 무엇입니까?

파일 확장자, 또는 오히려 파일 이름 확장명은 파일 이름에 추가된 특정 문자의 시퀀스입니다. 이러한 문자는 유형, 즉 파일 형식을 식별하기 위한 것입니다. 파일 이름 확장자는 파일 이름의 마지막 점 뒤에 오는 문자 및/또는 숫자의 조합에 지나지 않습니다(예: fotograf.gif, 여기서 "fotograf"는 파일 이름이고 ".gif"는 확장자임). . 수많은 파일 확장자가 있지만 모두 특정 표준 및 적용 영역에 해당합니다. 그러나 일부 파일(예: file_name.fotograf)에 대한 자신만의 원래 확장자를 만들고 싶다면 문제 없습니다! 그러나 컴퓨터에 이 확장자를 볼 수 있는 해당 프로그램이 없으면 Windows OS는 해당 파일을 열 수 없습니다. 예를 들어, Windows OS에서 확장자가 .gif인 파일을 열려고 하면 이 OS는 이 확장자를 알고 일부 이미지를 엽니다. 그러나 .fotograf 확장자를 가진 파일을 열려고 하면 Windows OS가 해당 확장자에 익숙하지 않기 때문에 해당 파일은 열리지 않습니다. 이 확장자를 가진 파일은 이 확장자를 지원하는 응용 프로그램에서 열 수 있습니다.

명함사이트란 무엇이고 어떤 것들이 있나요?

명함 웹사이트회사나 개인에 대한 정보를 대중에게 제공하는 것이 주요 목적인 웹사이트입니다. 이러한 사이트는 일반적으로 소수의 정적 또는 동적 페이지로 구성됩니다.
명함 웹사이트 페이지에는 회사/개인에 대한 기본 정보, 그들이 생산하는 상품 및 서비스에 대한 정보가 포함되어야 합니다. 가격 목록, 연락처 세부 정보 및 양식이 포함된 페이지일 수 있습니다. 피드백. 사진작가의 명함 웹사이트는 일반적으로 정교한 디자인과 풍부한 사진이라는 점에서 다른 유사한 사이트와 다릅니다. 사진가의 웹사이트에는 그의 포트폴리오와 연락처가 있어야 합니다. 안에 최근에점점 더 자주 명함 웹사이트를 찾을 수 있는데, 그 중 일부 페이지는 FLASH 기술을 기반으로 구축되었거나 전체가 FLASH로 구축되어 있습니다.
플래시 사이트좋아 보이지만 이러한 사이트는 현재 검색 엔진에 의해 색인이 매우 잘 생성되지 않거나 전혀 색인이 생성되지 않습니다.

동적 웹페이지/웹사이트란 무엇입니까?

동적 웹페이지- 별도의 신체 움직임 없이 콘텐츠 또는 그 일부를 실시간으로 생성(변경)할 수 있는 페이지입니다. 동적으로 연결된 페이지의 경우 소위 엔진인 CMS(콘텐츠 관리 시스템)가 사용됩니다.
어떻게 작동하나요? 예를 들어, 다음 페이지에 표시됩니다. 이 순간브라우저 창에서는 이 형식으로 존재하지 않습니다. 이는 서버에서 하나의 전체로 조립되는 별도의 부품(템플릿)으로 조립됩니다. 즉, 페이지가 요청되면 웹 서버는 요청을 처리하고 즉시 "즉시" 별도의 부분에서 웹 페이지를 조합하여 브라우저에서 볼 수 있도록 전송합니다. 페이지 콘텐츠만 변경되고 페이지 템플릿은 변경되지 않습니다.
여러 개의 선반이 있는 옷장을 상상해 보세요. 다른 것들. 한 선반에는 텍스트 콘텐츠(데이터베이스)가 있고 다른 선반에는 - 그래픽 파일(사진, 그래픽 디자인 요소), 세 번째 - 스크립트(예: PHP 스크립트), 네 번째 - CSS 스타일 등... 이는 서버가 특정 콘텐츠에 대한 요청을 받으면 모든 것이 어디에 있는지 알고 필요한 부분에서 신속하게 페이지를 구성합니다. 데이터베이스에서 필요한 텍스트 콘텐츠, 그래픽 선반에서 필요한 그래픽 파일 등을 가져옵니다. 한 곳에서 템플릿의 일부를 변경하면 이러한 변경 사항이 사이트의 모든 페이지에 적용됩니다.

정적 웹페이지/웹사이트란 무엇입니까?

정적 웹페이지사용자가 자신의 브라우저에서 볼 수 있는 형태로 서버에 위치한 웹 문서입니다. 즉, 이러한 문서는 별도의 부분(템플릿)으로 조립되지 않고 서버에 있는 그대로 조립된 형태로 존재하며 연결된 하나의 파일로 서버에서 다운로드됩니다. CSS 스타일및/또는 스크립트.
이러한 문서의 내용을 변경하려면 먼저 업무용 컴퓨터에서 일부 HTML 편집기를 사용하여 편집한 다음 서버에 다시 업로드해야 합니다. 디자인의 일부를 변경하거나 탐색 메뉴 항목을 추가/제거하는 등 사이트의 모든 페이지를 수정(변경)해야 합니다.

웹디자이너와 웹프로그래머, 무엇이 다를까?

웹 디자이너와 웹 프로그래머는 같은 분야에서 일하지만 서로 다른 업무를 수행합니다. 웹 디자이너는 페이지 디자인 프로토타입 제작, 웹 사이트 디자인 템플릿 개발, 그래픽 디자인 레이아웃 생성, 별도의 조각으로 잘라내기 및 최적화, 글꼴 및 색상 선택에 참여합니다. 웹 디자이너는 웹 사이트 페이지의 레이아웃을 수행할 수 있지만 이는 그의 책임이 아닙니다. 이 목적을 위해 특별히 훈련된 사람들, 즉 레이아웃 디자이너가 있습니다.
웹 프로그래머는 누구입니까?
웹 프로그래머 또는 오히려 웹 개발자(서버 개발자)는 특정 웹 페이지 모듈에 대해 다양한 프로그래밍 언어로 스크립트를 작성하여 특수 웹 응용 프로그램을 개발하는 사람입니다.
결론적으로, 웹사이트가 아름답고 기능적이 되기 위해서는 웹디자이너와 웹프로그래머가 모두 필요합니다. 그리고 사이트가 사용자 친화적이 되려면

웹사이트 프로모션(프로모션)은 검색 엔진에서 특정 키워드에 대해 웹사이트를 검색 결과 상단으로 이동시키는 것으로 이해됩니다. 구글 시스템, Yandex 등
인기 검색결과- 사이트의 첫 번째 페이지입니다. 검색 엔진사이트에 대한 처음 10개의 링크가 포함됩니다. 이 10개의 입장에 대해서는 동일한 주제를 다루는 사이트 간에 화해할 수 없는 투쟁이 있습니다. 통계에 따르면 상위 3개 위치를 차지하는 사이트는 가장 많은 방문자를 수집합니다. 이 정상에 오르기 위해 일부 자원은 엄청난 양의 돈을 지불합니다. 그러나 거기에 도달하는 것만으로는 충분하지 않고 거기에 머물러야 하며 이로 인해 대규모 SEO 회사뿐만 아니라 민간 업체들 사이에서도 끊임없는 투쟁이 발생합니다.

정적 페이지는 웹 서버 디렉터리에 있는 파일의 정확한 복사본이며 개발자가 직접 페이지의 내용을 변경할 때까지 변경되지 않습니다. 그러나 페이지는 동적으로 생성될 수 있습니다. 즉, 디스크에 미리 만들어진 파일이 아닌 일부 프로그램을 사용하여 요청을 처리하는 동안 생성될 수 있습니다. 이러한 페이지를 만드는 방법에는 여러 가지가 있습니다.

요청 시 웹 서버에서 직접 생성됩니다. 웹 페이지를 동적으로 생성하는 가능성을 구현하려면 서버에 어떤 파일이 "일반"인지, 어떤 파일에 프로그램 처리 지침이 포함되어 있는지 지시해야 합니다. 따라서 접근 권한 목록에 "실행"이 있는 웹 사이트의 해당 디렉터리에 있는 모든 파일은 동적 파일로 간주되며 서버 자체는 해당 파일에 접근할 때 해당 속성 및/또는 해당 파일에 접근할 때 특정 페이지를 생성하는 수단을 선택합니다. 또는 그 이름 확장자. 이 경우 페이지는 서버 자체(특수 명령 사용)에 의해 생성되거나 직접 실행된 외부 프로그램 또는 CGI 인터페이스(공통 게이트웨이 인터페이스)를 통해 생성될 수 있습니다. 동적 페이지를 생성하는 프로그램은 컴파일된 언어 또는 해석된 언어로 작성될 수 있습니다. 동적으로 페이지를 생성하는 명령이 포함된 프로그램 텍스트를 스크립트라고 합니다. 스크립트 속성과 이를 처리하기 위한 외부 프로그램 간의 대응 목록은 웹 서버/스크립트 프로세서 섹션에 지정됩니다. 예를 들어, 기본적으로 *.pl 및 *.cgi 확장자를 가진 스크립트는 Perl 인터프리터에 의해 처리됩니다.

사용자의 컴퓨터에 형성됩니다. 이 경우 동적 웹 페이지를 생성하는 프로그램의 텍스트가 먼저 다음으로 전송됩니다. 로컬 컴퓨터여기서 브라우저는 웹 페이지를 처리하고 수신하기 위해 적절한 도구를 호출해야 합니다. 동적 페이지를 생성하는 프로그램은 컴파일된 언어나 해석된 언어로 작성될 수도 있습니다.

    1. CGI 기술

아마도 이전에는 존재하지 않았고 귀하의 요청에 따라 동적으로 생성된, 즉 "즉석에서" 생성된 페이지를 접하셨을 것입니다.

예를 들어, 리뷰 책은 리뷰를 추가할 수 있는 특정 양식을 제공하며 다음에 해당 페이지를 열면 새 메시지가 포함됩니다.

웹 페이지에 동적 콘텐츠를 추가할 수 있는 기술 중 하나를 CGI라고 합니다. 이를 통해 정적 문서뿐만 아니라 프로그램과 특정 URL을 연결할 수 있으며 그 결과 실시간으로 데이터가 생성될 수 있습니다.

날씨 정보를 제공하는 예를 살펴보겠습니다. 일기 예보는 매일 바뀌며 새로운 정적 예보 페이지가 매일 생성될 수 있습니다. 하지만 인스턴트 데이터를 제공하려면 매번 새 페이지를 생성해야 합니다. 이는 CGI 기술을 사용하여 구현할 수 있습니다. 서버에 접속하는 순간 디지털 측정 장치에 액세스하고 온도, 압력 등에 대한 정보를 제공하는 CGI 프로그램이 실행됩니다. 다음에 이 주소로 연락하시면 새로운 정보를 받으실 수 있습니다.

또 다른 예: 검색 엔진의 요청과 같은 요청을 작성할 때 이에 대한 응답으로 검색된 주소 집합의 형태로 CGI 프로그램 결과를 받게 됩니다.

CGI 프로그램은 웹 서버에서 실시간으로 실행되는 웹 서버의 일부로 생각할 수 있습니다. 서버는 사용자의 요청을 CGI 프로그램에 전달하고 CGI 프로그램은 이를 처리한 후 작업 결과를 사용자 화면에 반환합니다(그림 3). 대부분의 웹 서버에서 CGI 메커니즘은 다음과 같이 구성됩니다. 해당 프로그램이 저장되는 특수 하위 디렉토리가 생성되고 웹 서버 관리자는 해당 프로그램의 파일을 읽지 않고 실행되도록 액세스를 구성합니다. 실행. 프로그램의 결과는 요청에 대한 응답으로 브라우저로 전송됩니다. 클라이언트의 관점에서는 주어진 URL이 정적 문서인지 CGI 프로그램인지는 아무런 차이가 없습니다. 브라우저는 정보가 즉시 생성되었는지 또는 정적 페이지인지에 관계없이 동일한 방식으로 정보를 인식합니다. CGI 프로그램의 출력은 정적 문서와 동일한 형식을 갖습니다.

아마도 여행 중에 브라우저에서 약어 CGI를 발견했을 것입니다. 월드 와이드 웹, 그리고 당신은 아마도 cgi 프로그램이 일반적으로 위치한 디렉토리인 /cgi-bin/에 대한 링크를 보았을 것입니다. 방명록, 포럼 등과 같은 많은 대화형 서비스는 CGI 프로그램을 기반으로 특별히 구축되었습니다.

"CGI"라는 용어는 프로그램뿐만 아니라 프로토콜도 의미합니다. 이런 의미에서 CGI는 웹 서버가 사용자 요청을 응용 프로그램에 전달하고 데이터를 다시 수신하여 사용자에게 전달하는 표준 방법입니다. 서버와 애플리케이션 간에 데이터를 전송하기 위한 CGI 프로토콜은 HTTP 프로토콜의 일부입니다.

무료 호스팅 서버에서 페이지를 호스팅하려는 경우 CGI 스크립트가 해당 서버에서 지원되지 않을 가능성이 높습니다.

CGI의 대안은 Microsoft의 ASP(Active Server Page) 기술입니다. 이 기술은 동일한 원칙에 따라 구축되었습니다. 즉, 페이지가 사용자에게 전송되기 전에 웹 페이지에 포함된 스크립트가 서버에서 실행됩니다.

동일한 원리로 작동하는 다른 기술이 있습니다.

그림에서 볼 수 있듯이. 3, CGI 프로그램은 서버 측에서 실행됩니다.

그림 3.

그러나 클라이언트 측에서 동적 페이지 콘텐츠를 생성하는 프로그램을 클라이언트 컴퓨터로 전송하여 동적 페이지를 구성하는 것도 가능합니다(그림 4).

쌀. 4

이 기술은 다음과 같이 구현됩니다. 활성 문서는 정적 페이지와 동일한 방식으로 웹 서버에 저장되고 로컬 컴퓨터에 다운로드되지만 활성 문서 프로그램이 로컬 컴퓨터에 있는 후에는 사용자 컴퓨터에서 실행되고 특정 계산을 수행합니다. , 로컬 컴퓨팅 리소스를 기반으로 합니다. 그리고 이러한 계산 결과는 이미 화면에 표시되어 있습니다. 따라서 활성 문서의 출력은 로컬 컴퓨터에 다운로드된 후에만 발생하므로 화면에 데이터를 표시하는 속도는 원격 서버와의 통신 속도에 의존하지 않습니다. JavaScript, Java 애플릿, ActiveX 컨트롤로 작성된 애플리케이션 등 다양한 기술을 사용하여 활성 문서를 생성할 수 있습니다.

웹 사이트의 콘텐츠를 업데이트하여 포화 상태로 만들기 위해 매일 작업합니다. 흥미로운 자료, 아마도 매일 수백 개의 새로운 웹 사이트가 생성되고 매일 수백 개의 새로운 문서가 추가된다고 생각할 것입니다. 이 모든 새로운 페이지 배열은 어떻게 생성되고 어떻게 그렇게 빨리 업데이트됩니까? 이 모든 것은 동적 웹 페이지의 개념을 사용하기 때문에 언뜻 보기에는 어렵지 않습니다.

이 기사에서는 웹 사이트에 보도 자료를 게시하는 메커니즘을 만드는 단계를 살펴보겠습니다. 우리 사이트는 템플릿 웹 페이지와 함께 데이터베이스에 저장된 보도 자료를 즉시 연결합니다. 우리의 목표는 독자들에게 웹 사이트 개발 도구의 기본을 소개하는 것이 아니었습니다. 이에 대해 많은 책과 기사가 쓰여졌기 때문입니다. 이 기사는 주로 이미 웹 페이지와 간단한 사이트를 만든 경험이 있는 사용자를 대상으로 합니다. 우리의 주요 목표는 첫 번째 동적 웹 사이트 개발을 시작하는 방법을 보여주는 것입니다. 기사를 이해하려면 다음을 수행하는 것이 좋습니다. 기본 지식정보 시스템 아키텍처, 하이퍼텍스트 마크업 언어(HTML) 및 Perl 프로그래밍 언어에 대해 설명합니다. 이 사이트를 만들기 위해 우리는 Apache, MySQL 및 Perl/DBI라는 세 가지 강력한 오픈 소스 기술을 사용할 것입니다.

정적 웹사이트란 무엇입니까?

동적 웹 사이트 개발을 시작하기 전에 정적 웹 사이트가 무엇인지, 그리고 그 핵심을 구성하는 정적 웹 페이지가 무엇인지 이해하는 것이 중요합니다. 정적 웹 페이지는 수동으로 생성된 다음 저장되고 사이트에 업로드됩니다. 그러한 페이지의 내용을 변경해야 할 때마다 사용자는 일반적으로 HTML 편집기를 사용하여 업무 컴퓨터에서 내용을 수정하고 저장한 다음 웹 사이트에 다시 업로드합니다. CNN.com이나 BBC.co.uk와 같은 일부 포털을 자세히 살펴보면 이러한 회사가 사이트 콘텐츠를 업데이트하기 위해 수많은 레이아웃 디자이너를 끌어들이고 있다고 생각할 수 있습니다. 실제로는 가장 좋은 방법- 동적 웹 사이트 개념을 사용합니다.

동적 웹사이트란 무엇입니까?

동적 웹 사이트의 렌더링된 각 페이지는 일반적으로 데이터베이스에 저장되는 끊임없이 변화하는 콘텐츠가 삽입되는 템플릿 페이지를 기반으로 합니다. 사용자가 페이지를 요청하면 관련 정보가 데이터베이스에서 검색되어 템플릿에 삽입되어 새 웹 페이지를 형성하고 웹 서버에서 사용자의 브라우저로 전송되어 해당 정보가 올바르게 표시됩니다. 정보 콘텐츠 외에도 웹 사이트의 탐색 요소도 동적으로 생성될 수 있습니다. 이렇게 하면 사이트의 콘텐츠를 업데이트해야 하는 경우 새 페이지에 대한 텍스트를 추가하기만 하면 됩니다. 그러면 해당 텍스트가 특정 메커니즘을 사용하여 데이터베이스에 삽입됩니다. 그 결과 웹 사이트가 자동으로 업데이트되는 것 같습니다.

동적 사이트 만들기

동적 사이트를 만들기 위해 가장 먼저 필요한 것은 Apache와 같은 웹 서버입니다.

웹 서버는 전자 상점, 뉴스 서버, 검색 엔진, 시스템 서비스를 제공하는 데 사용될 수 있습니다. 원격 교육심지어 나열된 영역 전체에 대해서도 마찬가지입니다. 웹 서버의 선택은 개인이나 조직이 인터넷에서 어떤 활동에 참여하려는지에 따라 달라집니다.

웹 서버 플랫폼을 선택하는 것만큼 중요한 전략적 비즈니스 결정은 거의 없습니다. 서버 특성은 노드의 신뢰성, 노드의 "응답성"을 결정하는 매우 중요한 요소입니다. 고객 요청, 작동 상태를 유지하기 위해 어떤 노력을 기울여야 하는지도 알 수 있습니다. ~에 올바른 선택을 하는 것구성 요소와 고품질 프로젝트를 통해 웹 사이트는 고객과 파트너가 회사와 상호 작용할 수 있는 새롭고 더욱 편리한 방법이 될 수 있습니다. 웹 서버에 과부하가 걸리면 클라이언트가 데이터베이스 서버나 다른 리소스를 사용할 수 없게 될 수 있습니다.

최근까지 대기업은 Microsoft Internet Information Server, Netscape FastTrack, IBM WebSphere에 의존했고, Apache는 소규모 기업에서 주로 사용했습니다. 그러나 이제 상황은 다소 바뀌었고 Apache는 일부 대규모 인터넷 프로젝트, 특히 Yahoo의 성능을 지원하기 시작했습니다.

기사의 전체 버전은 CD-ROM에서 찾을 수 있습니다.

Apache는 개인 및 기업 사용자의 요구 사항에 맞게 웹 서버를 사용자 정의할 수 있는 풍부한 기능을 제공합니다. 설정은 다음에 포함된 지시문을 사용하여 수행됩니다. 구성 파일. Apache를 사용하면 가상 웹 사이트를 만들 수 있고 프록시 서버 역할도 할 수 있습니다. 서버 콘텐츠에 대한 접근 권한만 제공해야 하는 경우 제한된 서클개인의 경우 지정된 디렉터리에 액세스할 때 서버가 자체 데이터베이스 또는 연결된 데이터베이스 중 하나에서 로그인 이름과 암호를 확인하도록 웹 서버를 구성할 수 있습니다.

다음으로 웹 페이지에 표시되는 콘텐츠를 저장할 방법을 결정해야 합니다. 이 기사에서는 구체적인 예를 사용하여 데이터베이스를 생성하는 방법을 보여줍니다. MySQL DBMS, 이를 통해 웹 콘텐츠를 필드와 데이터 레코드가 포함된 테이블로 나눌 수 있습니다. 필드는 테이블에 있는 개별 데이터 단위입니다. 예를 들어 col_title, col_date, col_fullstory, col_author 필드를 사용하여 tbl_news_items 테이블을 생성할 수 있습니다. MySQL DBMS는 사용 및 관리의 용이성, Linux 및 Windows를 포함한 다양한 플랫폼에 대한 무료 배포, 빠르게 성장하는 인기로 인해 이러한 데이터베이스를 생성하는 데 탁월한 선택입니다.

그런 다음 동적 HTML 템플릿 페이지를 만듭니다. 데이터베이스 및 템플릿과 상호 작용하는 애플리케이션을 개발하기 위해 Perl 언어를 사용합니다.

실제로 우리는 세 개의 Perl 프로그램 또는 스크립트를 만들어야 합니다. 하나는 사용 가능한 모든 보도 자료에 대한 링크를 표시하고(pr-list-dbi.pl), 다른 하나는 선택한 보도 자료의 내용을 표시합니다(pr-content-dbi .pl), 세 번째를 사용하면 최신 보도 자료를 데이터베이스(pr-add-dbi.pl)에 추가할 수 있습니다. 레이아웃 작업은 Allaire HomeSite(http://www.allaire.com/)와 같이 즐겨 사용하는 HTML 편집기에 맡길 수 있습니다. 템플릿을 생성할 때 동적 콘텐츠가 삽입될(물론 가변 길이의) 빈 영역을 남겨 두어야 한다는 점을 기억하세요.

보도자료의 전체적인 디자인을 개발한 후에는 위의 빈 공간에 특정 키워드를 삽입하기만 하면 됩니다(자세한 내용은 아래 참조). 사용자가 보도 자료를 요청하면 웹 서버는 Perl 코드를 처리하고 템플릿의 키워드를 데이터베이스에서 가져온 콘텐츠, 즉 특정 보도 자료로 바꿉니다.

마지막으로 해야 할 일은 템플릿을 특정 디렉터리의 웹 서버에 업로드하는 것입니다. FTP 클라이언트 CuteFTP(http://www.cuteftp.com/)를 사용할 수 있지만 우리는 FAR 파일 셸을 사용하는 것을 선호합니다. 기억해야 할 두 가지 중요한 사항: 첫째, 템플릿 파일에는 .pl로 끝나는 이름이 포함되어야 하고, 둘째, 실행 권한이 있어야 합니다(UNIX 시스템에서는 chmod 명령 0755 템플릿_이름.pl). 이게 다야!

기능 추가

추가하는 방법은 특별히 어렵지 않습니다. 기능성보도 자료 게시 메커니즘에 대해 설명합니다. 데이터베이스에 있는 보도 자료 링크를 날짜나 제목별로 정렬하고 연도별로 그룹화할 수 있습니다. 또는 예를 들어, 웹 페이지에 무작위 보도 자료를 표시하여 실제로 게시된 시기와 관계없이 방문자에게 수시로 정보를 제공할 수 있습니다. 그러나 아마도 가장 중요하고 유용한 기능은 보도 자료의 내용을 입력하기 위한 HTML 양식을 추가하고 이 양식을 처리한 다음 문서를 데이터베이스에 저장하기 위해 Perl에서 CGI 프로그램을 개발하는 것일 것입니다. CGI(Common Gateway Interface)는 웹 서버와 별도 프로그램 간의 프로토콜, 메커니즘 또는 공식 계약이라는 점을 기억하세요. 서버는 HTML 양식과 같은 입력 데이터를 인코딩하고 CGI 프로그램은 이를 디코딩하여 출력 데이터 스트림을 생성합니다. 프로토콜 사양은 특정 프로그래밍 언어에 대해 아무 것도 말하지 않습니다. 따라서 이 프로토콜을 준수하는 프로그램은 C, C++, Visual Basic, Delphi, Tcl, Python 또는 우리의 경우 Perl 등 거의 모든 언어로 작성될 수 있습니다.

몇 가지 결과를 요약해 보겠습니다. 이 기사가 정적 웹 페이지 개념에 비해 동적 웹 페이지 개념의 장점을 이해하는 데 도움이 되기를 바랍니다. 이 개념을 적용하면 수동 작업이 줄어들고, 서버 작업 부하를 분산하는 데 도움이 되며, 사이트의 콘텐츠 양을 빠르게 늘릴 수 있습니다. Apache, MySQL 및 Perl의 조합은 가상으로 무료이고, 사용하기 쉽고, 설치 및 구성이 유연한 크로스 플랫폼 및 확장 가능한 개발 환경을 제공합니다. 여기서는 설치의 세부 사항을 고려하지 않을 것입니다. 첫째, 이 기사에 할당된 공간이 충분하지 않고 둘째, 이러한 각 도구에는 매우 자세한 문서가 함께 제공되기 때문입니다.

MySQL DBMS에서 데이터베이스 생성

데이터베이스 모델 개발

데이터베이스 생성의 첫 번째이자 가장 중요한 단계는 모델을 개발하는 것입니다. 그럼 시작해 보겠습니다.

1 단계

어떻게든 데이터베이스 이름을 지정해야 합니다. db_website라고 부르겠습니다.

2 단계

데이터베이스 테이블에 정확히 무엇이 포함될 것인지 결정하는 것이 필요합니다. 데이터베이스에는 수백 개의 테이블이 포함될 수 있습니다. 처음에는 보도 자료를 저장하는 데 테이블이 하나만 필요합니다. tbl_news_items라고 부르겠습니다.

3단계

테이블에 포함될 필드를 정의해야 합니다. 이 필드는 보도자료의 모든 요소를 ​​나타냅니다. 우리의 예에서는 col_id(보도 자료의 숫자 식별자), col_title(제목), col_date(출판 날짜), col_fullstory(콘텐츠), col_author(저자 이름)의 다섯 가지 필드를 사용합니다. col_id 필드에는 사용자가 특정 보도 자료의 내용을 쿼리할 수 있는 고유 식별자가 포함됩니다.

데이터베이스 생성

이제 MySQL DBMS에 대한 연결을 설정하고 데이터베이스를 생성해야 합니다. 아래에서는 명령줄에서 이 작업을 수행하는 방법을 보여 드리겠습니다. 그러나 사용자 친화적인 그래픽 인터페이스를 사용하여 관리할 수 있는 많은 관리 시스템 또는 MySQL DBMS 관리자가 있습니다.

우선 언어의 기본을 확실히 알아야 합니다. SQL 쿼리(구조적 쿼리 언어). MySQL DBMS 패키지에는 지원되는 SQL 사양에 대한 전체 설명이 포함되어 있습니다. 이 언어는 연산자와 해당 구성이 이해하고 기억하기 쉽기 때문에 이해하기 쉽습니다. 작업하려면 데이터 생성(CREATE 또는 INSERT), 선택(SELECT), 삭제(DROP 또는 DELETE)는 물론 데이터 변경(UPDATE, MODIFY)을 위한 연산자가 필요합니다. 구체적인 예에서는 그 중 일부만 사용하겠습니다.

사용자 계정 설정 및 필요한 접근 권한 할당을 피하기 위해 관리자 계정(루트)을 사용하고 있다고 가정해 보겠습니다.

1 단계

터미널 창을 열고(Linux OS 또는 Windows 9x/NT/2000의 X Window 그래픽 셸에서 작업하는 경우) 다음을 입력하여 MySQL DBMS에 대한 연결을 설정합니다. 명령줄 mysql.mysql. 응답으로 mysql> 명령을 입력하라는 메시지가 표시됩니다.

2 단계

다음을 입력하여 데이터베이스를 생성해 보겠습니다.

데이터베이스 생성 db_website;

각 명령을 입력한 후 기호(;)를 입력하는 것을 잊지 마십시오. 이는 MySQL에 대한 명령 입력의 끝을 알리기 때문에 매우 중요합니다.

db_website를 사용하세요.

4단계

필드에 저장될 데이터 유형을 정의하는 tbl_news_items 테이블을 만들어 보겠습니다. 입력하다:

1. CREATE TABLE tbl_news_items (2. col_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 3. col_title VARCHAR(100), 4. col_author VARCHAR(100), 5. col_body TEXT, 6. col_date DATE 7.);

5단계

이제 데이터를 저장할 테이블을 만들었으므로 일부 샘플 데이터로 테이블을 채워야 합니다. 다음 명령에서는 새 데이터가 추가될 때 자동으로 채워지기 때문에 col_id 필드를 정의하지 않습니다. 또한 날짜 구문은 다음과 같습니다.<год/месяц/день>. 따라서 mysql> 명령 프롬프트에 다음 명령을 입력합니다.

8. INSERT INTO tbl_news_items (col_title, _ col_author, col_body, col_date) 9. VALUES (10. '나의 첫 보도자료', 11. '당신의 이름', 12. '이 보도자료는 MySQL 데이터베이스에 저장되어 있습니다', 13 .'2001/4/15'14.);

몇 가지를 더 입력하세요. 유사한 요청삽입하다. 데이터베이스에 저장된 내용을 보려면 mysql> 명령 프롬프트에서 다음을 입력하십시오.

SELECT * FROM tbl_news_items;

Perl로 동적 웹 페이지 만들기

취업 준비

Perl 프로그램을 실행하려면 UNIX 또는 Win32용 Perl Standard 또는 ActiveState Perl 배포판의 Perl 인터프리터 버전 5.005 또는 5.6이 필요합니다. Win32에서 실행되는 응용 프로그램을 개발하려는 경우 ActiveState의 패키지가 사용하기 더 편리하며 추가 모듈 설치를 위한 PPM 유틸리티도 포함되어 있습니다.

Perl 프로그램과 MySQL DBMS의 상호 작용을 구성하려면 DBI 모듈이 Perl 배포판에 포함되어야 합니다. 모듈은 기본적으로 자체적으로는 아무것도 하지 않고 데이터베이스와의 상호 작용에 관한 모든 작업을 해당 드라이버로 이동시키기 때문에 DBD-Mysql 라이브러리(DBI 모듈용 MySQL 데이터베이스 드라이버) 설치가 필요합니다. 특정 모듈의 작성자이자 개발자인 Tim Bunce는 “DBI는 Perl 프로그램에서 데이터베이스에 대한 액세스를 구성하기 위한 API입니다. DBI API 사양은 데이터베이스와 투명하게 인터페이스하는 데 사용되는 일련의 함수, 변수 및 규칙을 정의합니다.

데이터베이스 드라이버의 개념은 Perl 애플리케이션에서 표준 DBI 호출을 사용하여 모듈을 적절한 드라이버로 전달하고, 다시 배울 필요 없이 데이터베이스와 직접 상호 작용하기 때문에 매우 편리합니다. 기술적 기능들각 특정 DBMS. 따라서 DBD::Sybase, DBD::Oracle, DBD::Informix 등의 드라이버가 있습니다. (그림 1,).

기사의 범위를 조금 넘어서 보겠습니다. DBI 패키지에 특정 DBMS용 드라이버가 포함되어 있지 않다고 가정해 보겠습니다. 이 경우 DBD-ODBC 브리지가 구출됩니다. ODBC(Open DataBase Connectivity) 드라이버에 대한 새 데이터 소스(데이터 소스 이름)를 생성하는 것으로 충분합니다. 여기서 이 DBMS 유형, 연결을 설정하려는 호스트 주소, 데이터베이스 이름을 선택해야 합니다. 인증 데이터, 즉 사용자 이름과 비밀번호(그림 .3). 그런 다음 DBI 모듈을 사용하여 데이터베이스와 상호 작용합니다. 또한 ActiveState Perl은 일반적으로 Win32::ODBC 모듈(Win32-ODBC)과 함께 표준으로 제공됩니다. DBI로 작업하는 것은 DBI로 작업하는 것과 약간 다르지만 전반적으로 매우 유사합니다. 유일한 차이점은 Win32::ODBC는 Win32 시스템 전용 모듈이며 DBD::ODBC보다 더 효율적으로 기본 ODBC 기능을 사용할 수 있다는 것입니다.

ODBC와 DBI 간에 유사점을 그릴 수 있습니다. DBI는 ODBC 관리자(데이터베이스 드라이버 관리자)와 유사합니다. 각 DBD 드라이버는 해당 기능에서 ODBC 드라이버에 해당합니다. 혼란스러울 수 있는 유일한 점은 위에서 언급한 것처럼 DBD::ODBC 드라이버가 있다는 사실입니다. 그러나 이는 ODBC 드라이버와의 DBI 통신 설정만 허용합니다.

Win32 환경에서 PPM 유틸리티를 사용하여 DBI 및 DBD-Mysql을 설치하려면 명령줄에 다음을 입력하십시오.

Ppm 설치 DBI

이 시점에서는 컴퓨터가 인터넷에 연결되어 있어야 합니다. 해당 모듈이 있는 경우 로컬 디스크, 사용 배경 정보다음 명령을 입력하여:

ppm 도움말 설치

UNIX 사용자의 경우 DBI 모듈 설치는 다른 Perl 모듈 설치와 거의 동일합니다.

Tar –zxvf DBI-1.06.tar.gz cd DBI-1.06/ perl Makefile.PL make make test make install

CPAN 셸을 사용할 수도 있습니다. 컴퓨터에 UNIX 버전의 ActiveState 패키지가 설치되어 있는 경우 PPM 설치 유틸리티를 사용할 수도 있습니다. 컴퓨터가 연결된 기업 네트워크에 방화벽이 설치되어 있으면 CPAN 및 PPM 셸이 작동하지 않는 경우가 있습니다. 방화벽(방화벽). 이 경우 수동으로 다운로드한 소스 코드가 있는 모듈만 도움이 될 것입니다. 이를 설치하고 Perl 또는 Apache에 연결하려면 Perl 인터프리터, C/C++ 또는 GCC/PGCC 컴파일러 및 make 빌드 유틸리티 중 하나(UNIX 복제본 및 Microsoft Visual C++ 중 하나)가 필요합니다. nmake 또는 dmake. 따라서 모듈 설치 절차가 다소 복잡해집니다. 거의 모두 "빌드" 문서가 함께 제공되므로 큰 문제가 발생하지 않습니다.

기사 목록 표시

이제 작동 중인 보도 자료 데이터베이스가 있으므로 이를 웹 페이지에 쉽게 연결할 수 있습니다. 만들기부터 시작해보자 가장 간단한 페이지, 사용 가능한 모든 보도 자료 목록을 표시합니다. 기본적으로 Apache 웹 서버는 모든 문서가 htdocs 디렉토리에 있어야 한다고 "생각"하며, 실행 파일- cgi-bin에 있습니다. 따라서 확장자가 .pl인 모든 파일을 cgi-bin 디렉토리에 배치해야 합니다. 차례로, 생성된 파일 HTML 템플릿은 tpl 디렉터리에 있어야 합니다. 디렉터리 계층 구조는 다음과 같습니다.

/(디스크의 루트) /local /local/usr /local/usr/bin /local/usr/cgi-bin /local/usr/htdocs /local/usr/tpl

DOS/Windows 시스템의 경우 cgi-bin 경로는 다음과 같습니다.

C:\local\usr\cgi-bin

1 단계

좋아하는 것을 사용하여 텍스트 에디터, pr-list-tpl.htm 파일을 생성합니다:

15. 16. 17. 보도 자료 2001 18. 19. 20. @블록@ 21. 22.

이 파일은 사용 가능한 모든 보도 자료 목록을 표시하기 위한 것입니다.

2 단계

발견된 보도 자료와 함께 각 블록을 표 형식으로 표시하는 pr-list-block-tpl.htm 파일을 생성합니다.

23.

24. 25. 26.
@제목@
@작가@, _ @날짜@

3단계

보도 자료의 내용을 표시할 pr-content-tpl.htm 파일을 만듭니다.

27. 28. 29. 보도 자료 2001: @TITLE@ 30. 31. 32.

@제목@

33. 34. 35. 36. 37.
@제목@
작가: @작가@날짜: @DATE@
@몸@
38. 보도자료 목록을 보여주세요.. 39. 40.

4단계

db_website 데이터베이스에서 데이터를 읽고 HTML 템플릿 파일을 사용하여 보도 자료 목록을 표시하는 Perl 스크립트 pr-list-dbi.pl을 만듭니다(이 스크립트의 텍스트는 CD에서 찾을 수 있습니다).

이제 코드 목록을 살펴보고 보도 자료 목록을 표시하는 프로그램이 어떻게 작동하는지 살펴보겠습니다.

1-9행은 모든 전역 변수와 상수가 선언되는 초기화 블록과 같습니다.

41. #!/local/usr/bin/perl 42. 43. DBI를 사용합니다; 44. $dbh = DBI->connect('dbi:mysql:db_website','root',''); 45. $path = "/local/usr/tpl"; 46. ​​​​$TPL_LIST = "$path/pr-list-tpl.htm"; 47. $TPL_LIST_BLOCK = "$경로/pr-list-block-tpl.htm"; 48. 49. print "콘텐츠 유형:text/html\n\n";

먼저 Apache 웹 서버에 스크립트가 요청될 때 실행되는 Perl 인터프리터가 있는 경로를 알려주고 오류가 있는지 확인한 다음 실행합니다. 다음으로, 데이터베이스와 상호 작용하기 위해 프로그램에서 사용되는 메소드인 DBI(DataBase Interface) 모듈을 선언합니다(3행). 그런 다음 로그인 사용자 이름으로 루트(관리자)를 사용하고 비밀번호로 빈 문자열(기본값)을 사용하여 db_website(4) 데이터베이스에 대한 연결을 설정합니다. $path 변수에서 HTML 템플릿 파일이 있는 경로를 나타냅니다(5). $TPL_LIST 및 $TPL_LIST_BLOCK 변수에서 각각 이름(6, 7)을 나타냅니다. 그런 다음 HTML 스트림을 사용자 브라우저에 출력하려면 모든 나가는 데이터가 text/html MIME 형식으로 표시되어야 한다고 웹 서버에 알립니다(9).

11-22행은 프로그램 본문을 나타냅니다.

50. 51. open(L, "$TPL_LIST"); 52. 동안($line1= ) ( 53. chomp($line1); 54. if ($line1=~/\@BLOCK\@/) ( 55. read_db(); 56. ins_data(); 57. ) else ( 58. print "$line1 \n"; 59. ) 60. ) 61. 닫기(L); 62. 63. $dbh->연결 끊기;

템플릿 파일 pr-list-tpl.htm(11)을 열고 루프(12-20)에서 이를 살펴보며 읽은 각 줄을 $line 변수에 씁니다. 각 반복 중에 이 줄에 존재하는지 확인합니다. 예어@BLOCK@ (14-19), 즉 여기보도자료와 함께 블록을 삽입해야 합니다. 발견되자마자 read_db() 및 ins_data() 프로시저를 호출합니다.

26-39행은 보도 자료를 저장하는 tbl_news_items 테이블의 내용을 읽도록 설계된 read_db() 프로시저의 본문입니다.

64. 65. 66. 하위 read_db ( 67. $c=0; 68. my($sql) = "SELECT * FROM tbl_news_items"; 69. $rs = $dbh->prepare($sql); 70. $rs ->실행; 71. while (my $ref = $rs->fetchrow_hashref()) ( 72. $id[$c] = "$ref->('col_id')"; 73. $title[$c] = "$ref->('col_title')"; 74. $author[$c] = "$ref->('col_author')"; 75. $date[$c] = "$ref->(' col_date')"; 76. $c++; 77. ) 78. $rs->finish(); 79. )

카운터 $c=0을 초기화하고, 테이블(28)에서 모든 데이터를 선택하도록 요청하고, 요청(29, 30)을 실행하고 데이터를 레코드 세트(레코드 세트) $rs로 가져옵니다. 그런 다음 루프(31-37)에서 fetshrow_hashref 메서드를 사용하여 레코드 세트에서 데이터를 추출하고 현재 레코드의 필드 이름과 값이 포함된 연관 배열 %ref(31)에 대한 링크를 반환합니다. 추출된 데이터(32-35)를 해당 유형에 해당하는 일반적인 @id, @title, @author 및 @date 배열에 씁니다. 레코드 세트(38)를 닫습니다.

41-53행 - 데이터베이스에서 추출된 데이터를 나가는 데이터 스트림에 삽입하는 작업을 구현하는 ins_data() 프로시저의 본문입니다. 55-63행 - ins_data() 프로시저의 루프에서 호출되는 pr_block() 프로시저의 본문:

80. 81. 하위 ins_data ( 82. $toread = "pr-read-dbi.pl"; 83. for ($i=0; $i<$c; $i++) { 84. $line = &pr_block; 85. 86. $line =~ s/\@NUMBER\@/$id[$i]/; 87. $line =~ s/\@TITLE\@/$title[$i]/; 88. $line =~ s/\@AUTHOR\@/$author[$i]/; 89. $line =~ s/\@DATE\@/$date[$i]/; 90. $line =~ s/\@READ\@/$toread/; 91. print "$line"; 92. } 93. } 94. 95. sub pr_block { 96. my($block) = ‘’; 97. open (B, "$TPL_LIST_BLOCK"); 98. while ($line=) ( 99. $block = $block.$line; 100. ) 101. close(B); 102. 반환($block); 103.)

따라서 read_db() 프로시저의 결과로 카운터 $c의 최대값을 수신한 후 루프(43-52)에서 HTML 템플릿 pr-list의 내용을 읽는 pr_block() 프로시저를 시작합니다. block-tpl.htm을 작성하여 $block 변수(59)에 기록합니다. 그 값은 ins_data() 프로시저의 $line 변수(44)에 반환됩니다(62). 또한 동일한 루프에서 나가는 스트림 $line에서 발견된 @NUMBER@, @TITLE@, @AUTHOR@, @DATE@, @READ@ 키워드를 이 반복에 해당하는 배열 값으로 대체합니다(46-50). 루프 ($i) @id, @title, @author, @date 및 $toread 변수.

보도자료 텍스트 인쇄

데이터베이스에서 사용 가능한 모든 보도 자료 목록을 표시한 후(그림 4), 사용자에게 그 중 텍스트를 볼 수 있는 기회를 제공해야 합니다(CD에서 해당 스크립트를 찾을 수도 있음).

새 스크립트 pr-read-dbi.pl은 우리가 이미 만든 pr-list-dbi.pl과 약간 다릅니다.

이 목록은 목록 1과 98% 유사하지만 몇 가지 사소한 차이점이 있습니다.

  • CGI 라이브러리는 쿼리 문자열(예: http://localhost/cgi-bin/pr-content-dbi.pl?id=1)에서 id 매개변수(9)를 읽기 위해 연결됩니다.
  • 하나의 HTML 템플릿만 사용됩니다(pr-content-tpl.htm).
  • 데이터베이스 쿼리는 조건부 SQL WHERE 문으로 보완되어 col_id로 특정 보도 자료에 해당하는 모든 데이터를 검색합니다.
  • 선택한 보도 자료의 텍스트가 포함된 col_body 필드도 데이터베이스에서 읽습니다.

새로운 보도자료 작성

tbl_news_items 테이블에 새로운 정보를 보충하기 위해 데이터베이스를 직접 사용할 필요 없이 새로운 보도 자료를 생성하는 기능을 추가하여 시스템 기능을 확장해 보겠습니다.

따라서 새 Perl 프로그램(이전 두 프로그램과 마찬가지로 CD에 있음)은 주로 데이터 표시용이 아니라 데이터베이스에 추가하기 위한 것이라는 점에서 이전 프로그램과 다릅니다. 따라서 INSERT SQL 쿼리와 해당 DBI 모듈 연산자를 사용하여 데이터베이스와 상호 작용하는 부분을 약간 변경해야 합니다.

12-18행은 주 프로그램의 본문입니다.

12. if ($cmd ne "add") ( 13. &show_form; 14. ) else ( 15. $dbh = DBI->connect('dbi:mysql:db_website', _ 'root',''); 16. &add_pr; 17. dbh->연결 끊기; 18. )

여기서는 보도 자료를 데이터베이스에 추가하라는 명령이 수신되었는지 확인합니다. 도착하자마자 데이터베이스에 대한 연결을 설정하고(15) app_pr() 서브루틴을 실행한 다음(16) 연결을 종료합니다(17). 명령이 없으면 보도 자료 데이터에 대한 작성 양식(13)인 show_form() 프로시저를 간단히 표시합니다.

20-36행은 pr_add() 절차를 추가하는 보도 자료의 본문입니다.

19. 20. 하위 add_pr( 21. $title = $q->param("pr_title"); 22. $author = $q->param("pr_author"); 23. $body = $q->param( "pr_body"); 24. $body =~ s/\r\n/
/g; 25. 26. my($sql) = "tbl_news_items(col_title,col_author,col_body,col_date) VALUES(\'$title\',\'$author\',\'$body\',CURDATE())에 삽입 "; 27. $rs = $dbh->do($sql); 28. 29. if ($@) ( 30. $rc = $dbh->rollback; 31. ) else ( 32. $rc = $dbh->commit; 33. ) 34. 35. print "위치: /cgi -bin/pr-list-dbi.pl\n\n"; 36.)

먼저 폼 데이터를 처리하고(22-25), SQL 쿼리를 작성하고(27) DBI 메소드 $dbh->do()를 사용하여 실행합니다(27). 여기서는 데이터베이스에 데이터를 삽입하는 절차를 수행하므로, 실패할 경우 작업이 취소될 수 있다는 점에 유의해야 합니다. 이를 위해 트랜잭션을 취소하고 이전 상태(30-34)로 롤백하는 코드를 삽입했습니다. $dbh->do()가 실패하면 변경 사항을 삭제합니다(31). 실패가 발생하지 않으면 변경 사항을 확인합니다(33). 그런 다음 모든 단계를 마친 후 모든 보도 자료 목록이 있는 페이지로 이동합니다(36).

37-55행은 새 보도 자료에 대한 정보를 입력하기 위한 양식 출력 절차의 본문입니다($TPL_INSERT 변수 pr-add-tpl.htm에 이름이 지정된 HTML 템플릿 사용).

37. 38. sub show_form ( 39. print "Content-type:text/html\n\n"; 40. 41. open (L, "$TPL_INSERT"); 42. while ($line= ) ( 43. chomp($line); 44. if ($line=~/\@/) ( 45. if ($line=~/\@ADD\@/) ( 46. $toadd = "pr-add -dbi.pl"; 47. $line =~ s/\@ADD\@/$toadd/; 48. ) else ( 49. $tolist = "pr-list-dbi.pl"; 50. $line =~ s/\@LIST\@/$tolist/; 51. ) 52. ) 53. print "$line\n"; 54. ) 55. close(L);

시스템 과부하

동적 웹 사이트를 개발 중이므로 해당 웹 사이트에 있는 정보의 양이 매우 빠르게 늘어날 수 있습니다. 또한 리소스의 인기가 높아짐에 따라 방문자 수도 늘어나 서버 과부하, 즉 시스템 성능 저하가 발생할 수 있습니다. 하드웨어 성능을 높이고 구성을 찾는 방법을 찾기 전에 새로운 시스템, 다음 중 하나를 제거해 볼 수 있습니다. 가능한 이유과도한 RAM 소비. 범인은 동일한 Perl일 수 있습니다. 사실은 당신이 하나 또는 다른 Perl 스크립트에 접근할 때마다 웹 서버가 인터프리터를 로드한다는 것입니다. (하드 드라이브에서 500-1000KB를 차지함) 후자는 구문 오류를 찾기 위해 처음부터 끝까지 프로그램을 구문 분석합니다. 그 후 다시 읽어 변수와 함수를 초기화하고 입력 데이터(매개변수)를 읽어 처리한 후 결과를 반환합니다. 귀하의 사이트를 방문하는 수백 명의 방문자가 동시에 귀하의 보도 자료를 보고 싶어한다면 어떤 일이 일어날지 상상할 수 있습니까?

이 프로세스의 속도를 높이기 위해 다음을 나타내는 특수 솔루션이 만들어졌습니다. 추가 모듈 Apache 웹 서버용 - mod_fastcgi 및 mod_perl.

FastCGI 모듈(mod_fastcgi)은 실행 중인 프로세스(작업) 간에 데이터 교환 도구를 광범위하게 사용합니다. 운영 체제. 작업이 시작될 때 웹 서버는 CGI 프로그램을 활성화하고 이 프로그램과 여러 복사본을 실행 상태로 둡니다. 배경. 프로그램에 대한 모든 요청은 이미 활성화된 복사본으로 전송되어 프로세스 재활성화와 관련된 서버의 추가 로드를 덜어줍니다.

mod_perl 모듈을 사용하면 Perl을 Apache 웹 서버 자체와 동일한 주소 공간의 RAM에 로드할 수 있으며 Perl이 종료될 때까지 메모리에 남겨 두어 CGI 프로그램에 액세스할 때 인터프리터의 다음 복사본이 로드되는 것을 방지할 수 있습니다. 이 모듈은 프로그램을 변경할 필요가 없기 때문에 FastCGI보다 더 자주 사용됩니다.

컴퓨터프레스 6"2001

인터넷에는 수많은 다양한 리소스가 있습니다. 각 프로젝트는 대부분 HTML 문서 페이지로 구성되며, 브라우저에서의 문서 동작에 따라 정적 페이지와 동적 페이지로 구분됩니다. 반면에, 이러한 개념은 종종 다른 의미로 사용됩니다. 따라서 문서도 생성 방식에 따라 정적 문서와 동적 문서로 구분됩니다.

정적 사이트의 정의는 사용자 작업에 관계없이 페이지가 항상 동일하게 보인다는 것입니다. 일반적으로 정적 사이트는 동적 사이트와 달리 대화형 요소가 거의 없기 때문에 사용자에게 덜 흥미롭습니다.

브라우저의 요청에 따라 "즉시" 생성되는 동적 페이지를 포함하는 동적 사이트입니다. 이는 이미 사용자 작업 및 변경에 응답할 수 있는 페이지입니다. 예를 들어, 텍스트를 클릭하면 해당 단어가 번역된 텍스트 블록이 나타날 수 있습니다. 사용자는 작업 결과를 즉시 표시하면서 동적 페이지와 상호 작용할 수 있습니다.

정적 사이트 페이지

정적 사이트하나의 전체를 구성하는 정적 페이지(html, htm, dhtml, xhtml)를 포함하는 네트워크 리소스로 간주됩니다. 여기에는 HTML 마크업 형식으로 텍스트, 이미지, 멀티미디어 콘텐츠(오디오, 비디오) 및 HTML 태그가 포함됩니다. 태그는 브라우저용 서비스 태그일 수도 있고 정보의 모양과 표시를 형성하는 배치용일 수도 있습니다. 정적 사이트에 대한 모든 변경 사항은 리소스 문서(페이지)의 소스 코드에 적용되며 이를 위해 웹 서버의 파일에 액세스할 수 있어야 합니다.

정적 사이트의 페이지는 서버에 다음과 같이 저장됩니다. HTML 문서. 정적 사이트의 페이지는 수동으로 디자인됩니다. 페이지의 내용을 변경해야 하는 경우 각 페이지의 HTML 코드를 편집해야 합니다.

일반적으로 정적 사이트에는 하나 또는 소수의 페이지가 포함됩니다. 예를 들어 회사의 명함 사이트이고 해당 사이트의 정보가 변경되지 않거나 거의 업데이트되지 않는 경우입니다. 이러한 네트워크 리소스에는 댓글 달기, 등록 등과 같은 기회가 없습니다.

궁극적으로 정적 리소스는 웹 개발에 능숙한 사람만이 업데이트할 수 있습니다. 관리 패널이 없기 때문에 프로젝트에 대한 모든 업데이트는 소스 코드를 통해 수행되어야 합니다.

정적 사이트는 저렴하고 호스팅 공간을 덜 차지하므로 많은 소규모 회사에서는 여전히 동적 사이트보다 정적 사이트를 선호합니다.

정적 사이트의 장점은 다음과 같습니다.

  1. 간단하고 개발 속도가 빠릅니다.
  2. 개발 비용이 저렴하고 웹 서버에 최소한의 부하를 생성하며 빠르게 로드됩니다.
  3. 호스팅 리소스를 요구하지 않습니다.
  4. 정적 웹사이트를 새 호스팅으로 이전하는 것은 매우 쉽습니다.

장점과 함께 정적 사이트에는 단점도 있습니다.

  1. 프로젝트를 업데이트하려면 웹 개발 경험이 필요합니다. 그러한 리소스에 대한 아주 작은 세부사항이라도 업데이트하려면 HTML 및 CSS 코드를 직접 처리하거나 매번 웹마스터의 서비스에 의존해야 합니다.
  1. 콘텐츠 정체. 정적 사이트의 콘텐츠는 거의 업데이트되지 않기 때문에 이는 의 트래픽 및 프로젝트 홍보에 매우 부정적인 영향을 미칩니다. 물론 이러한 리소스를 홍보할 수 있지만 주로 유료 방법을 통해 홍보할 수 있습니다.
  1. 또한 대규모 프로젝트에서는 정적 사이트를 사용하지 않는 것이 좋습니다.

여기에서 서버에 정기적인 HTML 페이지, 이 접근 방식은 매우 제한적입니다. 예를 들어, 새로운 제품이 추가된 온라인 상점이 있습니다. 이러한 온라인 상점이 "정적" 페이지로 구성된 경우 다른 여러 페이지를 수동으로 편집해야 합니다. 최소한 이것은 제품 카탈로그이자 분명히 주문 양식입니다. 그리고, 제품이 품절되면 다시 정적 사이트를 업데이트해야 하는데, 이는 매우 불편합니다. 이런 점에서 "순수한" HTML 코드를 사용하는 온라인 상점은 인터넷에서 찾기가 어렵습니다.

동적 사이트

동적 사이트- 템플릿, 콘텐츠, 스크립트 및 기타 형식의 동적 페이지로 구성된 네트워크 리소스 별도의 파일. 최종적으로 사용자의 브라우저에 표시되는 동적 페이지는 요청 시 템플릿 페이지와 별도로 저장된 콘텐츠(정보, 스크립트 등)를 통해 서버 측에 구성됩니다. 일반적으로 동일한 유형의 페이지를 여러 개 표시하려면 하나의 템플릿 페이지를 사용하고 해당 콘텐츠가 로드되므로 일회성 조정이 가능합니다. 모습동적 사이트(모든 페이지의 대부분), 하나의 템플릿만 편집합니다.

동적 페이지는 여러 파일(템플릿)에서 웹 서버에 의해 생성됩니다. 모든 정보는 일반적으로 데이터베이스에 저장됩니다. 거의 모든 블로그는 동적 사이트입니다. 사용자가 페이지를 요청하면 관련 정보가 데이터베이스에서 검색되어 템플릿에 삽입되어 웹 페이지를 형성하고 웹 서버에서 사용자의 브라우저로 전송됩니다. 따라서 동적 리소스의 콘텐츠를 업데이트할 때 텍스트를 추가하기만 하면 됩니다. 새 페이지, 그런 다음 데이터베이스로 이동합니다. 궁극적으로 동적 사이트는 스스로 업데이트되는 것으로 보입니다.


동적 사이트의 장점은 다음과 같습니다.

  1. 콘텐츠는 정보를 쉽게 추가, 편집 및 삭제할 수 있는 특수 양식을 통해 관리되므로 리소스가 더욱 기능적입니다.
  2. 콘텐츠를 추가하거나 편집할 때 웹 마스터링(HTML, CSS) 분야에 대한 특별한 지식이 필요하지 않습니다.
  3. 방문자 작업에 따라 콘텐츠를 변경하는 동적 페이지 기능입니다.
  4. 대규모 다기능 프로젝트를 만드는 능력.
  5. 동적 페이지는 수정 및 업데이트가 훨씬 쉽습니다.
  6. 동적 사이트에서 정보와 디자인을 분리하여 보다 유연한 관리가 가능합니다.
  7. 동적 사이트를 지속적으로 업데이트하면 홍보할 수 있는 좋은 기회가 제공되어 프로젝트 홍보에 긍정적인 영향을 미치고 방문자도 많아집니다.

장점과 함께 동적 사이트에는 단점도 있습니다.

  1. 추가 사용 필요성 소프트웨어, 이는 동적 페이지를 생성하고 유지하는 데 드는 비용이 높다는 것을 의미합니다.
  2. 하드웨어 요구 사항 증가 서버 시스템. 이 문제는 트래픽이 많은 동적 사이트에서 특히 두드러집니다.
  3. 따라서 호스팅 비용도 조금 더 비쌉니다. 이러한 프로젝트의 경우 연결이 필요하기 때문입니다. 추가 기능.
  4. 동적 페이지에 대한 대규모 구조 변경의 복잡성. 이 경우 모든 것은 다음에 달려 있습니다. 소프트웨어, 리소스에서 사용됩니다. 모든 프로그램에는 고유한 제한 사항이 있으므로 이를 피하려면 프로그램을 변경하거나 이전 프로그램을 수정하거나 새 프로그램을 찾아야 합니다.
  5. 동적 페이지의 기능을 유지하려면 적절한 지식이 필요합니다.

동적 페이지 생성 도구

정적 사이트가 거의 변경되지 않고 페이지가 방문자의 모니터 화면에 "원본" 형태로 나타나는 경우 사람이 보는 동적 페이지는 서버에 존재하지 않는 것입니다. 그녀는 여러 곳을 가고 있어요 다른 방법들서버에 저장된 데이터로부터 방문자에게 표시됩니다.

첫 번째 옵션은 여러(2개 이상) 개별 부품을 하나로 결합하는 것일 수 있습니다. 이것이 가장 간단한 생성 방법입니다.

두 번째 옵션은 별도로 저장되었거나 알고리즘 결과(예: 계산 결과)로 얻은 일부 정보로 템플릿 페이지를 채우는 것입니다.

세 번째이자 아마도 가장 일반적인 옵션은 가능한 모든 변형에서 처음 두 가지를 조합하는 것입니다. 페이지는 다양한 변경이 이루어진 여러 조각으로 구성됩니다.

동적 페이지를 만드는 가장 일반적인 도구는 JavaScript 프로그래밍 언어입니다. VBscript는 훨씬 덜 자주 사용됩니다( 비주얼 베이직스크립트).

리소스에 자주 변경되는 콘텐츠가 포함된 경우 일반적으로 JavaScript와 달리 서버에서 실행되는 스크립트가 사용됩니다.

이 경우 동적 사이트는 다음과 같이 작동합니다.

  1. 브라우저가 서버에 문서를 요청합니다.
  2. 서버는 문서가 스크립트임을 확인하고 실행을 위해 실행합니다.
  3. 스크립트는 HTML 페이지를 생성합니다.
  4. 서버는 생성된 페이지를 브라우저에 보내므로 브라우저는 스크립트가 서버에서 실행되었다는 사실을 알 수 없습니다.

동적 페이지용 스크립트를 작성할 수 있는 여러 프로그래밍 언어가 있습니다. 가장 일반적인 것 :


SSI
PHP
A.S.P.
파이썬
자바
바이너리 코드(실행 가능한 코드로 컴파일된 C 또는 C++ 프로그램)

이러한 각 프로그래밍 언어에는 고유한 응용 프로그램 기능이 있습니다. 어떤 언어로든 스크립트를 작성할 수 있습니다. 가장 중요한 것은 자신의 강점을 아는 것입니다. 약한 면그리고 효과적으로 사용하세요.

동적 사이트는 생성 및 유지 관리에 대한 새로운 요구 사항을 제시할 뿐만 아니라 개발 비용이 훨씬 더 많이 들고 프로그래머라는 새로운 직원 단위의 유지 관리도 필요합니다. 동시에 기술은 정체되지 않으므로 동적 페이지를 생성할 수 있는 가능성도 진화하고 있다는 점에 유의해야 합니다. 그리고 여기서 CMS에서 고품질 리소스를 생성하는 형태의 솔루션이 발견되었으며 현재 점점 더 인기를 얻고 있습니다.

CMS는 콘텐츠 관리 시스템(Content Management System)의 약어로 문자 그대로 리소스 콘텐츠 관리 시스템(Resource Content Management System)으로 번역됩니다. 간단히 말해서 이는 사용자가 요구하는 방식으로 동적 페이지의 디자인과 내용을 변경할 수 있는 동일한 소프트웨어 패키지입니다. 그런데 SMS는 위에서 언급한 프로그래밍 언어 중 하나 이상을 기반으로 합니다.

현재 인터넷에는 이러한 시스템이 많이 운영되고 있으며 그 중 일부는 무료이고 일부는 유료입니다. 종종 이러한 시스템은 해당 개발 회사를 통해 고객에게 제공됩니다. 각 시스템은 개별적이며 고유한 장점과 단점이 있습니다.

따라서 동적 사이트는 관리 측면에서 훨씬 더 유연합니다. 동적 페이지는 정적 사이트와 마찬가지로 텍스트와 그래픽, 마크업 언어의 조합입니다. 그러나 이 외에도 동적 페이지는 웹 페이지를 즉시 "조합"할 수 있는 다양한 기술을 사용합니다. 이러한 리소스는 소유자가 주변 방문자 커뮤니티를 통합하고 청중과 소통할 수 있는 훨씬 더 많은 기회를 제공하는 데 도움이 되며, 이를 통해 다양한 기능을 통해 방문자에게 더 흥미로운 곳을 만들 수 있습니다.

동적 리소스는 처음부터 개발하여 필요한 모든 리소스를 수동으로 생성할 수 있습니다. 프로그램 코드, 스크립트 등 그러나 동적 페이지를 생성하기 위해 훨씬 더 자주 특수 콘텐츠 관리 시스템이 사용됩니다. CMS. CMS를 사용하면 매번 처음부터 새로 만들 필요 없이 미리 만들어진 소프트웨어 모듈과 구성 요소를 사용할 수 있습니다. 하나의 CMS를 기반으로 프로젝트를 원하는 만큼 만들 수 있습니다.

동시에 동적 페이지의 명백한 이점에도 불구하고 동적 사이트가 항상 올바른 솔루션이라고 가정하고 정적 사이트의 페이지를 완전히 버려서는 안 됩니다. 항상 그 상황에서 진행해야 합니다. 철도가 있어도 여전히 공연이 필요하다고 말하는 것은 이유가 없습니다. 프로젝트에서 정적 페이지를 사용해야 하는 경우가 종종 있습니다. 프로젝트가 작고 몇 페이지로만 구성되어 있고 그 내용이 업데이트되지 않은 경우 리소스용 엔진을 만들 필요가 없습니다. 필요한 모든 페이지를 한 번에 레이아웃하는 것이 더 쉽습니다. 그러나 이것이 모든 경우에 가능한 것은 아닙니다.

초보자라도 아마도 "정적 사이트"와 "동적 사이트"라는 문구에 익숙할 것입니다. 그러나 이 문구들은 정확히 무엇을 의미하며 그 차이점은 무엇입니까? 특정 유형의 사이트의 장점은 무엇입니까?

추측하지 말고 간단히 자세히 살펴보고 비교해 봅시다.

정적 사이트와 동적 사이트 - 차이점은 무엇인가요?

오늘날 동적 사이트의 수가 증가하고 있지만, 귀하가 열어본 사이트가 정적인지 동적인지 언뜻 보면 확실하게 말할 수 없습니다.

정적 사이트 예

예를 들어 사이트에 하나 또는 적은 수의 페이지가 포함되어 있거나 회사의 명함 사이트이고 해당 사이트의 정보가 절대 변경되지 않거나 변경되지 않는 경우 사이트가 정적이라고 언뜻 생각할 수 있습니다. 댓글 달기, 등록 등과 같은 기능이 없는 경우 매우 드물게 업데이트됩니다.

실제로 정적 사이트는 관리 패널이 없기 때문에 웹 개발에 능숙한 사람만이 업데이트할 수 있으므로 사이트에 대한 모든 업데이트는 소스 코드를 통해 수행되어야 합니다.

정적 사이트는 저렴하고 호스팅 공간을 덜 차지하므로 많은 소규모 회사에서는 여전히 동적 사이트보다 정적 사이트를 선호합니다.

그래서 우리는 볼 수 있습니다 정적 사이트의 장점:

  1. 간단하고 개발 속도가 빠릅니다.
  2. 개발 비용이 저렴하고 부하가 적습니다.

장점과 함께 우리는 또한 강조할 수 있습니다 정적 사이트의 단점:

  1. 사이트를 업데이트하려면 웹 개발 경험이 필요합니다.
  2. 그러한 사이트의 가장 작은 세부사항까지 업데이트하려면 코드를 직접 파헤쳐야 하거나, HTML과 CSS를 스스로 모르는 경우 매번 웹마스터의 서비스에 의존해야 합니다.

  3. 콘텐츠 정체.
  4. 이러한 사이트의 콘텐츠가 매우 드물게 업데이트되고 해당 사이트의 콘텐츠가 "정체"되기 때문에 이는 검색 엔진에 매우 불리한 영향을 미칩니다. 물론 그러한 사이트를 홍보할 수도 있지만 주로 유료 방법을 통해 홍보할 수 있습니다.

동적 웹사이트의 예

반면, 동적 사이트는 특히 처음부터 개발하는 경우 비용이 훨씬 더 많이 들 수 있습니다. 또한 추가 기능을 연결해야 하기 때문에 호스팅 비용이 조금 더 비쌉니다. 그러나 동적 사이트의 수많은 장점은 이러한 단점을 상쇄하고도 남습니다.

동적 웹사이트는 소유자에게 매우 쉽게 콘텐츠를 업데이트하고 사이트에 추가할 수 있는 기능을 제공합니다. 예를 들어, 코드 파일을 편집할 필요 없이 브라우저 자체의 관리 패널을 통해 뉴스와 이벤트를 추가할 수 있습니다.

동적 웹사이트의 가능성은 우리의 상상력에 의해서만 제한됩니다.

동적 사이트의 예로는 관리 시스템 기반 사이트, 온라인 상점, 광고 사이트, 포럼, 고객과 방문자가 리뷰, 댓글, 파일 업로드 등을 남길 수 있는 기회가 있는 사이트가 있습니다.

동적 사이트의 장점:

  1. 더 기능적인 사이트.
  2. 업데이트하는 것이 훨씬 쉽습니다.
  3. 지속적인 업데이트는 웹사이트 홍보에 긍정적인 영향을 미치고 더 많은 방문자를 유치합니다.
  4. 이러한 사이트는 소유자에게 도움이 되며 청중과 소통할 수 있는 더 많은 기회를 제공하고 다양한 기능을 통해 방문자에게 사이트를 더욱 흥미롭게 만듭니다.

결론

따라서 우리는 그러한 사이트를 구현하는 데 더 많은 시간이 걸릴 수 있음에도 불구하고 동적 사이트가 정적 사이트보다 훨씬 더 큰 개발 전망을 가지고 있음을 알 수 있습니다.

점점 더 많은 사람들이 동적 사이트의 부인할 수 없는 이점을 깨닫고 있으며, 따라서 점점 더 많은 동적 사이트가 인터넷에 나타나고 있습니다.

그러나 반면에, 모든 것은 귀하에게 특별히 필요한 것이 무엇인지에 따라 달라집니다. 예를 들어 일부 제품을 판매할 1페이지 웹사이트나 1~5~6페이지의 명함 웹사이트가 필요한 경우 지속적으로 업데이트할 계획이라면 완전히 자연스러운 해결책은 정적 사이트를 선택하는 것입니다.

프로젝트가 지속적으로 개발되고 콘텐츠로 가득 차기를 원한다면 물론 동적 웹사이트가 필요합니다.