SW Level Up
PHP 작동 과정 본문
사용자(클라이언트)는 웹 요청을 보낼 수 있는 프로그램, 웹 브라우저가 필요하다.
서버는 웹 서버, PHP 엔진, 데이터베이스 등의 프로그램이 필요하다.
사용자는 웹 브라우저의 주소표시줄에 웹 페이지의 주소인 blog.swlevelup.com/index.php를 적는다.
웹 브라우저는 DNS 서버에 blog.swlevelup.com이라는 도메인 이름을 어떤 IP로 바꿔야 하는지 물어본다.
DNS 서버에서 받은 IP를 가진 컴퓨터에 /index.php 페이지를 요청한다.
/index.php는 웹 서비스의 루트 디렉터리를 뜻하며, 이는 서버 컴퓨터의 루트 디렉터리와는 다르다.
웹 서비스의 루트 디렉터리는 웹 서버 소프트웨어인 아파치(Apache)에서 설정한다.
이 요청은 인터넷을 통해 전달되며, 요청 주소에 포트 번호가 없으니 웹 서비스 기본 포트인 80 포트로 전달된다.
요청을 받은 웹 서버 컴퓨터의 80 포트는 아파치 웹 서버 소프트웨어가 사용하고 있으니 아파치가 이 요청을 받는다.
아파치는 요청이 php 파일임을 확인하고 PHP 엔진에 /index.php의 연산을 요청한다.
만약 요청된 파일이 정적 웹 페이지인 html 파일이었다면 아파치가 바로 해당 파일을 찾아 사용자에게 응답으로 전송했을 것이다.
PHP 엔진은 /index.php 파일을 찾아 php 코드를 실행 후 그 결과를 웹 페이지(html)로 만드는 작업을 한다.
php 코드에 데이터베이스 작업이 있다면 MariaDB 같은 데이터베이스 프로그램이 동작하고 결과를 줄 것이다.
아파치는 PHP 엔진이 준 웹 페이지를 인터넷을 통해 사용자에게 전달한다.
사용자 컴퓨터의 IP와 포트 번호는 요청에 적혀있으니 보낼 수 있다.
참고로 사용자 쪽의 포트 번호는 80이 아니라 요청마다 다르기 때문에 여러 페이지를 동시에 볼 수 있는 것이다.
사용자의 웹 브라우저는 응답을 해석해 화면에 보여준다.