클라이언트 측 프로그래밍과 서버 측 프로그래밍의 차이점은 무엇입니까?
P粉757640504
2023-08-22 20:26:21
<p>다음 코드가 있습니다: </p>
<pre class="brush:php;toolbar:false;"><script type="text/javascript">
var foo = '바';
<p>이 코드는 텍스트 파일에 "bar"를 쓰지 않지만 "42"를 표시하는 이유는 무엇입니까? </p>
<시간 />
<p>참고: 이 질문의 이전 개정판에서는 서버의 PHP와 클라이언트의 JavaScript를 명시적으로 다루었습니다. 한 언어가 클라이언트에서 실행되고 다른 언어가 서버에서 실행되는 경우(동일한 언어라도) 문제의 성격과 해결 방법은 동일합니다. 특정 언어에 대한 답변을 볼 때 이 점을 고려하시기 바랍니다. </p>
PHP 코드가 JavaScript 코드에서 작동하지 않는 이유를 확인하려면 클라이언트 측 언어와 서버 측언어가 무엇인지, 그리고 어떻게 작동하는지 이해해야 합니다.
서버 측 언어 (예: PHP 등) : 데이터베이스에서 레코드를 검색하고 상태 비저장 HTTP연결에서 상태를 유지하며 보안이 필요한 많은 작업을 수행합니다. 이는 서버에 상주하며 이러한 프로그램의 소스 코드는 결코 사용자에게 노출되지 않습니다.
그러므로 @deceze가 말했듯이 서버 측 언어가 HTTP 요청을 처리하고 처리한다는 것을 쉽게 알 수 있습니다. PHP는 서버에서 실행되어 일부 HTML 및 JavaScript 코드를 출력하며 이는 클라이언트 측에 대한 응답으로 전송됩니다. , HTML이 해석되고 JavaScript가 실행됩니다.
반면에 클라이언트 측 언어(예: JavaScript) 는 브라우저에 상주하고 실행됩니다. 클라이언트 측 스크립트는 일반적으로 서버 측이 아닌 사용자의 웹 브라우저에 의해 실행되는 웹상의 컴퓨터 프로그램을 의미합니다.
JavaScript는 사용자에게 표시되고 쉽게 수정될 수 있으므로 보안 문제로 인해 JavaScript에 의존할 수 없습니다.
그래서 서버에 HTTP 요청을 하면 서버는 먼저 PHP 파일을 주의 깊게 읽어서 수행해야 할 작업이 있는지 확인하고 클라이언트에 응답을 보냅니다. @deceze가 말했듯이 *PHP가 응답 출력을 마치면 스크립트가 종료되고 새로운 HTTP 요청이 수신될 때까지 서버에서는 아무 일도 일어나지 않습니다. *
그렇다면 PHP를 호출해야 한다면 어떻게 해야 할까요? 페이지를 다시 로드하거나 AJAX 호출을 사용하여 수행해야 하는 방법에 따라 다릅니다.
좋은 독서 자료:
귀하의 코드는 완전히 독립적인 두 부분, 즉 서버 측과 클라이언트 측으로 나뉩니다.
으아아아이 두 부분은 HTTP 요청과 응답을 통해 통신합니다. PHP는 서버에서 실행되어 일부 HTML 및 JavaScript 코드를 출력합니다. 이 코드는 클라이언트에 대한 응답으로 전송되며, 클라이언트에서 HTML을 해석하고 JavaScript를 실행합니다. PHP가 응답 출력을 마치면 스크립트가 종료되고 새 HTTP 요청이 들어올 때까지 서버에서는 아무 일도 일어나지 않습니다.
샘플 코드의 실행 과정은 다음과 같습니다.
으아아아첫 번째 단계에서 PHP는
으아아아<?php ?>
태그 사이의 모든 코드를 실행합니다. 결과는 다음과 같습니다:file_put_contents
调用没有产生任何结果,它只是将" + foo + "写入文件中。而<?php echo 42; ?>
호출 결과 "42"가 출력되며, 이는 이제 원래 코드가 있던 위치입니다.이제 결과 HTML/JavaScript 코드가 클라이언트로 전송되어 평가됩니다.
alert
调用起作用,而foo
변수는 어디에도 사용되지 않습니다.모든 PHP 코드는 클라이언트가 JavaScript 실행을 시작하기 전에 서버에서 실행됩니다. JavaScript와 상호 작용하기 위한 응답에는 PHP 코드가 남아 있지 않습니다.
일부 PHP 코드를 호출하려면 클라이언트가 서버에 새 HTTP 요청을 보내야 합니다. 이는 다음 세 가지 방법 중 하나로 달성할 수 있습니다.
여기에 이러한 방법을 더 자세히 설명하는 질문이 있습니다
JavaScript를 사용하면 브라우저가
window.location
을 사용하여 새 페이지를 열거나 양식을 제출하여 가능성 1과 2를 시뮬레이션할 수도 있습니다.