>백엔드 개발 >PHP 튜토리얼 >PHP 학습 가이드 - 2장

PHP 학습 가이드 - 2장

黄舟
黄舟원래의
2016-12-23 09:33:211176검색

서버측 웹 스크립팅 언어

이 장의 핵심 포인트
·정적 및 동적 웹 페이지 이해
·클라이언트측 및 서버측 스크립팅 언어 비교
·소개 서버 측 스크립팅 언어로

이 장에서는 서버 측 스크립팅 언어 자체에 대해 중점적으로 논의하고 정적 HTML 및 일반적인 클라이언트 측 기술과의 관계에 대해서도 설명합니다. 이 장을 마치면 독자들은 PHP가 무엇을 할 수 있고 무엇을 할 수 없는지에 대한 명확한 아이디어를 갖게 될 것이며, PHP가 원래 클라이언트와 어떻게 통신하는지에 대한 일반적인 이해도 갖게 될 것입니다.

정적 HTML

가장 기본적인 형태의 웹 페이지는 완전히 HTML로 작성된 정적인 텍스트 전용 페이지입니다. 그림 2-1의 간단한 HTML 페이지는 예입니다.

서버측 웹 스크립팅 언어

이 장의 핵심 포인트
·정적 및 동적 웹 페이지 이해
·클라이언트측 및 서버측 스크립팅 언어 비교
·서버사이드 스크립팅 언어 소개

이 장에서는 서버사이드 스크립팅 언어 자체에 대해 중점적으로 논의하고, 정적 HTML과 일반적인 클라이언트측 기술과의 관계에 대해서도 설명합니다. 이 장을 마치면 독자들은 PHP가 무엇을 할 수 있고 무엇을 할 수 없는지에 대한 명확한 아이디어를 갖게 될 뿐만 아니라 PHP가 원래 클라이언트와 어떻게 통신하는지에 대한 일반적인 이해를 갖게 될 것입니다.

정적 HTML

가장 기본적인 형태의 웹 페이지는 완전히 HTML로 작성된 정적인 텍스트 전용 페이지입니다. 그림 2-1의 간단한 HTML 페이지는 예입니다.

그림 2-1 정적 HTML 웹페이지 명세

다음은 그림 2-1의 소스코드이다.

그림에서와 같이 2-2에서와 같이 클라이언트 컴퓨터가 웹이나 인트라넷을 통해 서버에 페이지에 대한 HTTP 요청을 할 때, 서버는 파일에서 찾을 수 없는 평문만을 전달하면 된다.


데이터가 클라이언트 컴퓨터로 다시 전송되면 브라우저는 소스 코드 내용, 사용자 선호도, 모니터 크기 및 기타 요인에 대한 정확한 분석을 기반으로 최상의 처리 및 표시를 수행합니다. 서버에 있는 HTML 파일의 내용은 클라이언트 컴퓨터에 있는 페이지의 소스 코드와 정확히 동일합니다.

귀하의 것과 같은 매우 일반적인 정적 HTML에는 다음과 같은 장점이 있습니다.

◆ 모든 브라우저에는 이를 표시할 수 있는 기능이 있습니다.

◆대부분의 기기에는 표시 기능이 있습니다.

◆모든 요청을 신속하게 실행하고 최소한의 리소스를 사용합니다.

◆ HTML은 배우기 쉬우며 자동으로 생성됩니다.

◆ 개별 페이지에 작은 변경을 빠르게 적용하는 기능.

◆ 물론 정적 HTML에도 단점이 있습니다.

◆ 디자인과 레이아웃을 제어하기가 어렵습니다.

◆ 많은 페이지로 확장할 수 없습니다.

◆ 상호작용이 충분하지 않습니다.

◆ 페이지에 대한 의미 있는 메타데이터를 포함하는 것은 쉽지 않습니다.

◆ 콘텐츠나 개인화 정보의 급격한 변화에 대처하기 어려움.

◆ 그다지 매력적이지 않습니다.

이러한 제한 사항을 해결하기 위해 클라이언트 측 JavaScript, CSS(Cascading Style Sheet) 및 Java 애플릿은 물론 서버 측 데이터베이스 연결을 위한 서버 측 스크립팅 언어를 비롯한 많은 다른 기술이 개발되었습니다. . 개발 중인 기술에는 XML과 XSL이 포함되며, 둘 다 다양한 다른 사양(XHTML, XSLT, XPath, ICE 등)의 일부입니다.

이러한 기술이 어떤 기능을 갖고 있는지, 자신의 웹 사이트에 추가할 수 있는지 여부를 잠시 시간을 들여 이해한다면 앞으로 골치 아픈 일이 발생할 가능성이 확실히 줄어들 것입니다. 어떤 웹 사이트 작업이든 스스로에게 물어야 할 첫 번째 기본 질문은 다음과 같습니다. 이 계산은 클라이언트 또는 서버 중 어디에서 수행됩니까?

"동적"의 의미 "정적" 웹 페이지와 "동적" 웹 페이지 사이에는 기본적이고 반복되는 차이점이 있지만 "동적"은 일반 HTML을 제외한 거의 모든 것을 의미할 수 있습니다. 클라이언트 측 기능과 서버 측 기능을 모두 설명하는 데 사용됩니다. 사용자 측에서 "동적"은 멀티미디어 디스플레이, 제목 행 스크롤, 자동 업데이트 페이지 또는 사라지고 나타나는 요소 등으로 볼 수 있습니다. 서버 측에서 이 용어는 일반적으로 무선으로 전송되고 대화형으로 구성되는 콘텐츠를 나타내는 데 사용됩니다.

클라이언트 측 기술

일반 HTML의 경우 가장 일반적인 콘텐츠 추가는 클라이언트 측에서 발생합니다. 여기에는 CSS 및 동적 HTML과 같은 형식 확장, 클라이언트측 스크립팅 언어, Java 애플릿 및 Flash가 포함됩니다. 이러한 기술에 대한 지원은 (대부분 지원) 웹 검색에 내장되어 있습니다. 표 2-1에는 해당 기능이 나열되어 있으며 그 중 일부는 중복됩니다.

표 2-1 클라이언트 측 HTML 확장

그림 2-3에 나열된 페이지 예제는 그림 2-1과 동일한 내용을 기반으로 합니다.

소스 코드에서 볼 수 있듯이 이 예제에는 몇 가지 새로운 스타일 시트, 클라이언트측 스크립팅 및 좀 더 복잡한 HTML 코드가 추가되었습니다.



안타깝게도 클라이언트 측 기술의 가장 큰 장점은 품질도 최악이라는 점입니다. 즉, 전적으로 브라우저에 의존합니다. 각 브라우저의 기능은 동일한 브랜드에서 생산된 다양한 버전 간에도 크게 다릅니다. 또한 모든 사람은 다양한 방식으로 브라우저를 구성할 수 있습니다. 예를 들어 일부 사람들은 보안 문제로 인해 JavaScript 사용을 비활성화하여 탐색에 JavaScript를 과도하게 사용하는 사이트를 탐색하는 것이 불가능할 수 있습니다. (이전 예에서 기능을 표시한다면)

게다가 많은 사용자들이 비용이나 기술 부족으로 인해 브라우저 업그레이드에서 좋지 않은 결과를 겪고 있습니다. 웹 개발자는 장치 기반 탐색, 일반 및 글로벌 사용자 등에 대해 이해하고 있어야 합니다. 예를 들어, Yahoo!와 Amazon은 이러한 표준을 채택한 후 3년 이상 스타일 시트와 JavaScript를 사용하지 말 것을 고집해 왔습니다. W3C의 압력으로 인해 많은 웹사이트는 여전히 FONT 태그와 BGCOLOR 속성 사용을 고집하고 있습니다. 해당 고객은 13시 모니터가 있는 구형 Macintosh 시스템에서 AOL ​​3.0을 사용하는 사용자일 수 있습니다. 더욱 아이러니한 점은 웹이 5년 동안 급속한 발전을 이룬 후에도 개발자가 고객에게 절대적으로 보장할 수 있는 유일한 것은 주로 일반 텍스트인 일반 HTML을 보게 될 것이라는 점입니다. (또는 시간의 테스트를 성공적으로 쉽게 견뎌낸 HTML의 하위 집합일 수도 있습니다.)

마지막으로 클라이언트 측 기술은 백엔드 서버에 연결해야 하는 작업을 수행할 수 없습니다. JavaScript는 데이터베이스에 저장된 사용자 기본 설정 옵션을 기반으로 사용자 정의 드롭다운 목록을 즉시 생성할 수 없습니다. 목록을 변경해야 하는 경우 웹 개발자는 해당 페이지로 이동하여 수동으로 변경해야 합니다(서버 측 JavaScript이지만 현재는 사용되지 않습니다. 너무 많습니다.) 이 문제에 대해서는 서버 측 JavaScript 언어가 이러한 격차를 해소할 수 있는 구세주입니다.

간단히 말하면 레이아웃 구성이나 브라우저 이벤트를 처리하는 모든 작업은 사용자 측에서 발생합니다. 일반적으로 멋진 효과나 마우스 움직임에 따른 효과 등은 사용자 측에서 수행됩니다. 이벤트가 빠르게 나타날수록 클라이언트에서 이벤트를 처리할 가능성이 높아지는 것을 알 수 있습니다. 속도가 빠르면 서버에서 다운로드할 필요가 없기 때문입니다.

참고:
"클라이언트측 Java"라고도 알려진 Java 애플릿은 다른 클라이언트측 기술보다 브라우저에 덜 의존합니다. 이름에서 알 수 있듯이 인터넷을 통해 제공되는 완전한 소형 Java 애플리케이션이지만 클라이언트 운영 체제와 직접 상호 작용하는 다른 프로그래밍 언어로 작성된 애플리케이션과 달리 Java 애플릿은 JVM(Java Virtual Machine)이라는 소프트웨어에서 실행됩니다. . 가상 머신, 자바 가상 호스트) 중개 소프트웨어. JVM은 실제 운영체제 위에 존재하는 운영체제라고 볼 수 있다. 대부분의 최신 브라우저에는 충분하지 않은 JVM이 있습니다. 물론 별도로 다운로드하여 사용할 수도 있습니다. 이러한 작업 구별을 통해 애플릿은 브라우저의 상대적으로 약한 기능에 의해 제한되지 않고 브라우저가 특수 기능을 수행할 수 있도록 합니다.

애플릿은 원래 투명한 풀처럼 보이는 아이콘 로고, 제목 표시줄 스크롤, 점핑 본딩 등 간단한 애니메이션을 구현하는 데 사용되었기 때문에 초기에는 의미 없는 작은 것으로 간주되었습니다. 다행스럽게도 애플릿은 발전하여 크로스워드 퍼즐, 하노이 타워 시뮬레이션, 슈트 및 액세서리 입어보기, 가상 모드 등 매우 인간적인 목적으로 사용될 수 있습니다.


서버 측 스크립팅 언어

그림 2-4는 서버 스크립팅 데이터 프로세스의 개략도입니다.

클라이언트 측 스크립팅 언어는 매우 매력적이고 웹 개발에서 가장 눈길을 끄는 부분입니다. 서버 측 프로그래밍은 그와 정반대입니다. 사용자에게는 보이지 않고 그 뒤에 숨겨져 있습니다. 서버 측 스크립팅 프로그래머는 항상 백엔드 웹 서버의 데이터를 탐색하려고 노력하는 반면, 프론트 엔드에서 예술적 재능을 가진 동료는 대중 앞에서 자신의 작업을 표현할 수 있습니다.

서버측 웹의 스크립팅 언어는 주로 웹사이트를 데이터베이스 등의 백엔드 서버에 연결하여 양방향 통신을 가능하게 한다.


스크립팅 서버 측 웹 언어 스크립팅 언어는 주로 웹 웹 사이트를 데이터베이스와 같은 백엔드 서버에 연결하여 양방향 통신을 가능하게 합니다.

◆ 서버에서 클라이언트로: 웹 페이지를 결합할 수 있습니다. 백엔드 서버의 출력에서 ​​.

◆ 클라이언트 대 서버: 클라이언트가 입력한 정보를 유효하게 만듭니다.

사용자-서버 통신의 일반적인 예로는 온라인 양식과 서버에서 동적으로 결합되는 일부 드롭다운 목록이 있습니다. (보통은 버튼을 눌러야 합니다.)

서버 측 스크립팅 언어 제품은 스크립팅 언어와 스크립팅 엔진(웹 서버에 내장되거나 내장되지 않을 수 있음)의 두 가지 주요 부분으로 구성됩니다. 엔진 부품은 모두 동일한 회사 또는 팀에서 개발되었으며 서로 결합해서만 사용할 수 있습니다(PHP3 및 ColdFusion이 그러한 예입니다). 그러나 이 규칙에는 예외가 있습니다. 예를 들어 Java Server Pages는 특수 목적의 스크립트 언어가 아닌 표준 프로그래밍 언어로 작성되었습니다. 일부 파트너는 호환 가능하고 상호 교환 가능한 여러 엔진(예: Allaire JRun, Apache JServ)을 개발했습니다.

이론적으로 Active Server Pagesb는 대부분의 스크립팅 언어와 그에 맞는 여러 ActiveX 스크립팅 엔진 중 하나를 사용할 수 있습니다(단, 실제로는 NT/IIS/VBScript/JScirpt 조합을 제외하고는 많은 문제점이 있습니다). 다른 조합과 함께) PHP4의 스크립팅z 엔진(Zend)은 현재 이론적으로 PHP 프로그래밍 언어와 분리되어 있으므로 이제 PHP4는 별도의 독립적인 스크립팅 기술로 간주됩니다.

그림 2.5에는 간단한 서버측 스크립팅 언어의 예가 나와 있습니다. 서버측 소스 코드와 클라이언트측 소스 코드를 기반으로 데이터베이스에서 페이지가 즉시 생성됩니다. 우리는 데이터베이스 호출을 포함시켰고(이 책의 2부까지는 자세히 설명하지 않겠습니다) 포함된 파일 중 일부를 생략했습니다. 왜냐하면 이 예제의 목적은 PHP의 최종 제품을 보여주는 것이지 공식적인 결과를 보여주기 위한 것이 아니기 때문입니다. Job 실행 가능 소스 코드는

다음은 서버에 있는 소스 코드입니다

클라이언트에 도달했을 때 같은 페이지의 소스 코드 제시 형태입니다.

위 내용은 PHP 학습 가이드 - 2장입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.