학습 목표
- 웹 서비스를 위한 클라이언트-서버 구조 이해
- 웹 서비스를 지원하는 APM(Apache, PHP, MySQL) 연동 방식 이해
웹 서비스 개요
-
전 세계적으로 TCP, UDP, SCTP 포트 80으로 지정
- 보안을 위해 8000, 8080 등을 이용하기도 함
- 보안이 강화된 HTTPS(HTTP over TLS/SSL)은 TCP, UDP, SCTP 포트 443 이용
-
웹 브라우저는 http 또는 https 서비스에 지정된 포트를 통해 서버와 연결 시도
- 다양한 웹 브라우저로 접속 가능
- 웹 서버와 연결이 되면 클라이언트의 정보 요구에 대해 서버가 웹 문서 회신
- 사용자 요구마다 연결 설정과 해제 반복
클라이언트-서버 모델
URL (Uniform Resource Locator)
- 서버의 자원 명칭. 자원 위치를 지정
- 사용하는 프로토콜, 서버 호스트 이름, 서버 내부 파일 경로명으로 구성
- 예)
https://blog.naver.com/account
(https - 프로토콜, blog.naver.com - 호스트 이름, account - 내부 파일 경로명) - UNIX/Linux 시스템
HTTP (HyperText Transfer Protocol)
연결 설정과 해제
- 사용자가 웹 브라우저에 웹 서버 URL 주소 입력
- 웹 브라우저가 DNS 서버에게 웹 서버 호스트 이름을 IP 주소로 변경할 것을 요청
- IP 주소 + 포트 80번인 웹 서버와 TCP 접속 시도
- 웹 서버에게 최초 화면 구성을 위한 GET 요청 전송
- 웹 브라우저가 요청한 웹 문서를 웹 서버에서 회신
- 웹 브라우저와 웹 서버 사이 연결 해제
- 웹 브라우저가 사용자 화면에 웹 문서 출력
APM
Apache
- 웹 서버 프로그램
- 대응 프로그램: MS의 IIS(Internet Information Services) 등
PHP
- UNIX/Linux 환경에서 지원되며, HTML 언어 기능을 보강
- 대응 언어: MS의 ASP(Active Server Page), Java 언어 기반 JSP(Java Server Pages) 등
MySQL
- 데이터베이스 기능 지원
- 대응 DB: Oracle DB, MariaDB
APM 동작 원리
- 웹 브라우저가 Apache에 웹 문서 요청
- PHP 코드 처리 필요 시 PHP에 요청
- 데이터베이스 처리 필요 시 MySQL에 요청
- 데이터베이스 결과 회신
- PHP가 실행 결과인 HTML 코드 회신
- 웹 문서를 웹 브라우저에 회신
PHP 코드 처리 방식
- PHP 코드는 HTML 문서에 Embeded 형식으로 작성
<?
와?>
이 구분자- PHP 코드가 포함된 문서 확장자는 .php
- 웹 브라우저에 회신되는 내용: PHP 코드는 서버에서 실행되고 그 결과 코드만 회신
<HTML>
<BODY>
<? $value = 10; ?>
출력<br>
<? echo $value; ?>
</BODY>
</HTML>
결과 코드
<HTML>
<BODY>
출력<br>
</BODY>
</HTML>