PHP를 본격적으로 배우기에 앞서 기초적인 내용들을 정리하고 넘어갑니다.
웹의 동작 원리
웹 브라우저의 주소창에 도메인(www.php.net)을 입력했을때 발생하는 일련의 과정은 아래와 같다.
- 클라이언트(웹 브라우저)에서 입력받은 도메인주소는 DNS 서버를 통해 IP로 변환된다.(DNS 이해)
- 변환된 IP 주소(64.71.164.5)의 목적지인 웹 서버에 접속하고 URL을 통해 요청(request) 파일의 정보를 전달한다(www.php.net 이라고 URL을 요청했을때 웹서버의 설정에 따라 www.php.net/index.html 혹은 www.php.net/index.php 등의 파일을 자동적으로 찾는다).
- 웹 서버는 찾은 파일을 처리하고 그 결과를 웹 브라우저에 전달한다.
- 웹 브라우저는 전달받은 결과를 해석해서 사용자에게 보여준다.
HTTP 프로토콜로 전달된 URL의 요청은 각각의 상태코드를 서버로부터 되돌려 받는데 이는 아래의 내용을 참고하자.
상태코드 | 의미 | 설명 |
---|---|---|
200 | OK | 요청이 정상적으로 완료되었음을 나타낸다. |
302 | Found | 요청된 리소스가 일시적으로 다른 URI에 속해 있음을 나타낸다. 리다이렉트에 이용된다. |
401 | Unauthorized | 사용자 인증에 실패했음을 나타낸다. |
403 | Forbidden | 접속 권한이 없기때문에 서버가 요청 실행을 거부했음을 나타낸다. |
404 | Not Found | 요청 URI와 일치하는 리소스를 찾지 못했음을 나타낸다. |
500 | Internal Server Error | 서버측 프로그램 실행과정에서 에러가 발생했음을 나타낸다. |
503 | Service Unavailable | 과도한 접속으로 인한 일시적 서비스 불가현상을 나타낸다. |
정적인 웹 페이지 vs 동적인 웹 페이지
웹 페이지는 HTML 만으로도 구성할 수 있지만, 이는 단순한 요청에 대한 응답만을 보여주기에 정적인 내용을 서비스한다고 말한다. 반면 PHP와 같은 서버측 스크립트를 활용하면 데이터베이스를 활용해 자료를 저장하고 출력하며, 요청에따라 동적으로 페이지에 HTML을 추가하거나 수정하는 재구성이 가능하기에 원하는 결과를 다방면으로 출력할 수 있게 된다. 즉, 동적인 웹 페이지 구현이 가능하다.
PHP의 역사
현재의 PHP 최신버전은 PHP 7 버전이다. 그렇다고 PHP 7이 가장 활발히 활용되고 있는 것은 아니고 PHP 5 버전대에서 7버전대로의 전환점의 시기에 있다고 생각하는 것이 옳을 것이다. PHP의 역사에 관해서는 PHP와 PHP 관련 프로젝트의 역사에 자세히 기록되어 있다.
PHP 정의
PHP는 원래 Personal Home Pages의 약어였으나 최근에는 Hypertext Preprocessor(하이퍼텍스트 전처리기)라는 의미로 사용된다.
PHP 특징
- PHP는 서버측에서 실행되는 스크립트 언어로서, 클라이언트(웹브라우저)의 요청에 따라 서버가 PHP를 해석하여 실행하고 그 결과를 다시 클라이언트에게 되돌려 준다.
- PHP는 PHP로만 작성된 페이지, PHP와 HTML로 이루어진 페이지, HTML로만 이루어진 페이지 모두를 확장자 .php 를 이용하여 PHP 페이지로 인식시킬 수 있다.
- PHP 문법은 C, Java, Perl 등의 문법과 유사하여 배우기 쉽다.
- PHP는 서버에서 실행되어 HTML로 변환되어 브라우저에 전송되기에 클라이언트에서는 PHP 코드를 볼 수 없고 실행결과인 HTML만 보게 된다.
- PHP는 커맨드 라인 스크립팅을 통하여 서버나 브라우저없이 PHP를 실행할 수 있다.
- PHP는 웹 서버의 모듈로 동작하는 것이 일반적인 방식이라 과거 CGI보다 빠른 속도를 가진다.