본 수업은 폐지 예정입니다. 자바스크립트 언어 수업과 웹브라우저 자바스크립트로 수업이 리뉴얼 되었기 때문에 이것을 이용해주세요.
서버란?
- 개인용 PC와 똑같음 -단지 웹서비스가 돌아가는 컴퓨터일 뿐임
- 개인용 PC도 서버가 될 수 있음.
- 서버들이 모여있는 곳을 IDC라고 함.
- 보통 이렇게 생겼음 - 그러나 거의 똑같은 컴퓨터임
클라이언트란?
- 서비스를 받는 컴퓨터, 브라우져등을 의미함
- 보통 이렇게 생겼음.
서버 - 클라이언트 모델이란?
- 클라이언트가 요청하면 서버가 응답하는 것을 통해서 웹서비스가 운영됨
- 이 모델이 극대화된 것이 클라우드 컴퓨팅.
- 모든 에플리케이션을 웹서버에서 제공하고 컴퓨터는 브라우져를 통해서 시스템을 이용 - 구글의 웹에플리케이션들과 크롬 OS
HTML과 서버
- 웹페이지에서 서버로 데이터를 전달하기 위해서는 Form을 사용
- form을 이용하면 페이지가 리로드 되면서 서버로 데이터를 전달
- HTML 수업 참조
receiver.php - example1.html, example2.html이 전송한 데이터를 받아서 출력해주는 php 프로그램 (github)
<?php echo $_GET['nickname'].'님 안녕하세요'; ?>
example1.html - (github)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > </head> <body> <form action="./receiver.php" method="GET"> <label for="nickname">이름</label> <input id="nickname" type="text" name="nickname" value="" /> <input type="submit" /> </body> </html>
Ajax (Asynchronous JavaScript and XML)
- 페이지 리로드 없이 데이터 통신을 할 수 있다.
- 어떻게 발음하는지는 의견이 분분하다 -> http://deving.net/143
- jQuery와 같은 라이브러리를 이용해서 쉽게 사용할 수 있다.
example2.html - (github)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <script type="text/javascript"> function load(e) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("output").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", "./receiver.php?nickname=" + document.getElementById('nickname').value, true); xmlhttp.send(); return false; } </script> </head> <body> <form action="http://lab.opentutorials.org/receiver.php" method="GET"> <label for="nickname">이름</label> <input id="nickname" type="text" name="nickname" value="" /> <input type="submit" onclick="return load()" /> </form> <textarea id="output"></textarea> </body> </html>