php, 웹서버, 웹 클라이언트
1. 웹서버(Web server)란 무엇인가
웹 클라이언트의 반대 개념이다
2. 웹 클라이언트(Web client)란 무엇인가
아래에서 알아보자
3. 인터넷의 프레임의 구성 요소 = 웹 클라이언트 + 웹 서버
1) 클라이언트
+ 2) 서버
- 클라이언트란 = 요청자
- 서버 = 제공자
- 서버(예: 카페 서빙) = 음식을 손님들에게 제공하는 사람, 요청에 대해 응답하는 사람
- 컴퓨터에서 클라이언트 = pc, 노트북, 아이폰, 안드로이드
- 접근할 때의 프로그램: 웹 브라우저= Web client
3) 웹 클라이언트(Web client)
서버로 접근하는 웹 브라우저 = Web client
(크롬, 인터넷 익스플로러, 사파리, 파이어폭스)
4) 웹 서버(Web server) = 웹 클라이언트의 반대 = 소프트웨어
웹 클라이언트(웹 브라우저= 크롬 등)로부터 요청을 받고 응답해야 하는 프로그램(소프트웨어)
그러므로 인터넷은 ① 웹브라우저와 ② 웹 서버가 속삭이는 대화이다.
4. 서버(server)의 프레임 = 서버의 구성
1) 서버 기술 전체
2) 서버 부분을 구성하는 부품과 같은 개발 기술
- 1) 아파치 또는 IIS 또는 엔진엑스
- 2) php, 파이썬, 자바
- 3) MySQL, 오라클
각각의 부품들을 서로 연결시켜주는 개념 = 프레임
5. 웹서버(Web server)의 역할 및 종류
웹서버란 서버 역할을 하는 소프트웨어를 말한다.
아파치(Apache), 엔진엑스(NginX), IIS 등이 웹 서버이다.(IIS는 윈도우에서 사용된다)
웹서버는 외부 클라이언트 컴퓨들이 서버에 접근해서 서버에 저장되어 있는 파일(html, css, 자바스크립트, 이미지 파일, 영상 파일 등)들에 받아 갈 수 있도록 하는 역할을 한다.
6. 웹 서버와 서버 언어
웹 클라이언트의 언어는 HTML이다. 웹브라우저에서 웹 페이지를 표현하려면 HTML, CSS, 자바스크립트 정도면 된다. 그러나 html 파일이 라고 하는 것은 정적인 파일이다. '정적'이라 함은 html 문서의 경우 하나하나 수작업으로 만들어야 된다는 의미이다. 웹페이지에 전체적인 큰 변화가 필요할 때 그 변화를 어떻게 수용할 수 있는가? 그 한계를 극복하기 위한 것으로써 웹서버와 php 엔진 사이의 통신 규약이 있다.
통신 규약은 Common, Gateway, Interface이다.
1) 웹서버가 요청받은 파일이 html 파일일 경우
- 웹서버는 요청받은 파일이 html이면 해당되는 파일을 찾아서 클라이언트에게 전달한다.
- 웹브라우저가 웹서버에 파일을 보여달라고 요청을 할 때, 요청받은 파일이 html이면 웹서버는 해당되는 파일을 찾아서 웹브라우저에게 전송한다. 그러면 웹브라우저는 html 담겨 있는 내용을 해석해서 사용자에게 웹 페이지를 보여 주게 된다
2) php 파일일 경우
- 웹서버는 php 엔진을 구동시키고 동작시키고 처리를 위임한다.
- php 엔진은 php 파일 php 문법에 따라 해석하고 처리하여, 그 결과를 웹 서버에게 돌려준다.
- 웹서버는 마치 html을 html 문서를 웹 클라이언트에게 전송하는 것과 똑같이 그 정보를 웹 클라이언트에게 전송한다.
3) cgi = 웹서버와 php 엔진 사이의 통신 규약
웹서버와 php 엔진 사이에서 웹서버가 처리할 수 없는 정보를 php, 파이썬 등이 실행할 수 있도록 약속 맺어진 통신 규약을 말한다. 아파치를 엔진엑스로, 엔진엑스와 아파치 등이 상호 변경 가능하고 php와 파이썬 등을 변경할 수 있다(표준화)
7. 요약
클라이언트 컴퓨터에는 웹 브라우저가 설치되어 있고, 서버 컴퓨터에는 웹서버 소프트웨어가 설치되어 있다. 웹브라우저에 url을 입력했을 때, 그게 html이라면 웹 서브는 바로 응답할 수 있다. 그러나 사용자가 요청한 것이 php 문서이면 웹 서버는 php 엔진을 호출해서 그 파일에 대한 해석과 처리를 의뢰한 후 그 결과를 html처럼 웹 클라이언트에게 전송한다.
PHP: 다음 글
'코딩 > PHP' 카테고리의 다른 글
윈도우 Bitnami 환경에서 php 설정 (0) | 2022.01.10 |
---|---|
htdocs란, php 파일 열기 및 php 설정 (0) | 2022.01.10 |
php란, php 어플리케이션 만들기 (0) | 2022.01.08 |
Bitnami WAMP 설치(비트나미 설치) (2) | 2022.01.07 |
윈도우10에 우분투(Ubuntu) 리눅스 설치 (0) | 2022.01.06 |