본문 바로가기

코딩공부/WEB2 - PHP

[3] PHP의 원리 - 순수 HTML 웹페이지와의 차이

HTML vs PHP

  • HTML 만으로 만들어진 웹페이지 - 정적인 웹페이지. 언제나 동일한 내용
  • PHP 로 만들어진 웹페이지 - 동적인 웹페이지. 요청할 때마다 프로그래밍적으로 만들어진다.

 

웹브라우저와 서버 간의 상호 작용

(좌) 클라이언트 - 웹 브라우저

(우) 서버 - 웹서버 & PHP 

 

<!-- index.php -->
<!doctype html>
<html>
  <body>
    <?php
      echo date('Y-m-d H:i:s');
     ?>
  </body>
</html>

<!-- index.html -->
<!doctype html>
<html>
  <body>
    2019-09-24 13:14:01
  </body>
</html>

 

 

1. 웹브라우저의 주소창에 index.html 파일을 요청

요청을 받은 서버 컴퓨터에 설치돼있는 웹서버가 주소를 보고 확장자가 "html" 라는 것을 보면 웹서버는 자신이 직접 처리할 수 있다는 것을 알기 때문에 서버 컴퓨터의 하드디스크에 설치되어있는 htdocs라는 디렉토리에서 index.html 파일을 읽어서 바로 웹브라우저에게 전송해주면, 웹브라우저는 그 코드의 내용을 해석해서 화면에 출력해준다.

html 파일 요청

 

 

2. 웹브라우저 주소창에 index.php 라는 확장자의 파일을 요청

웹서버는 "확장자가 php 인 파일은 자신의 소관이 아니다."라는 것을 안다.

웹서버는 확장자가 php 인 파일을 처리할 수 있는 소프트웨어가 PHP 프로그램이라는 사실을 알고 있기 때문에, 파일에 대한 처리를 PHP라는 프로그램에게 위임한다.

PHP 프로그램이 htdocs 디렉토리 안에 있는 index.php 파일을 열어서, 파일에 적혀있는 php 라는 컴퓨터 언어의 문법에 따라서 해석해서 최종적으로 html 파일을 찍어낸다. (생산한다.)

그렇게 만들어진 html을 웹서버가 웹브라우저에게 전송하면서 과정이 끝난다.

php 파일 요청

 

 

htdocs 디렉토리에 index.html 파일과 index.php 파일을 만들어 보자

 

1. index.html 파일로 접속

페이지 소스보기를 하면 html 소스코드가 보여지는데, 웹서버가 설치되어있는 컴퓨터의 파일을 열었을 때, 파일 내용과 완벽히 동일하다.

 

 

2. index.php 파일로 접속

Reload 할 때마다 시간이 바뀌면서 출력된다. 소스코드를 보면 평범한 html 코드가 나오는데, Reload 할 때마다 이 html 코드에 적혀있는 내용이 '다이나믹하게' 동적으로 바뀐다. 

index.php 파일에 "현재의 시간을 출력해라" 라는 것을 PHP 라는 컴퓨터 언어의 문법에 따라서 작성한 것이다.

 

 

"PHP가 시작된다"라는 것을 알려주기 위한 약속인 "<?php" 가 나오면 프로그램은 이제부터 PHP라는 컴퓨터 언어의 문법이 등장하겠구나 라는 것을 알고, 이후 코드들을 PHP문법에 따라서 해석해서 동작하게 된다.

PHP는 코드에 따라서 동작한 뒤, 최종적으로 다음과 같이 바꾼다. 그리고 만들어진 최종적인 결과(우측)만을 웹서버에게 전송하면, 웹서버가 웹브라우저에게 전송해준다.

웹브라우저는 php 코드가 없는 순수한 html 만으로 이루어진 정보를 받을 수 있다.