복붙노트

클라이언트 측 프로그래밍과 서버 측 프로그래밍의 차이점은 무엇입니까?

PHP

클라이언트 측 프로그래밍과 서버 측 프로그래밍의 차이점은 무엇입니까?

나는이 코드를 가지고 :

<script type="text/javascript">
    var foo = 'bar';
    <?php
        file_put_contents('foo.txt', ' + foo + ');
    ?>

    var baz = <?php echo 42; ?>;
    alert(baz);
</script>

왜 이것이 내 텍스트 파일에 "막대"를 쓰지 않지만 "42"를 경고합니까?

주의 :이 질문의 이전 개정판은 명시 적으로 서버의 PHP와 클라이언트의 JavaScript에 관한 것입니다. 문제와 솔루션의 본질은 클라이언트와 서버에서 실행될 때 모든 언어 쌍에 대해 동일합니다. 특정 언어에 대한 답변을 볼 때 고려하십시오.

해결법

  1. ==============================

    1.

    코드는 서버 쪽과 클라이언트 쪽의 완전히 별개의 두 부분으로 나뉩니다.

                        |
                   ---------->
                  HTTP request
                        |
    +--------------+    |    +--------------+
    |              |    |    |              |
    |    browser   |    |    |  web  server |
    | (JavaScript) |    |    |  (PHP etc.)  |
    |              |    |    |              |
    +--------------+    |    +--------------+
                        |
      client side       |      server side
                        |
                   <----------
              HTML, CSS, JavaScript
                        |
    

    양측은 HTTP 요청과 응답을 통해 통신합니다. PHP는 서버에서 실행되며 일부 HTML과 JavaScript 코드를 출력합니다.이 코드는 HTML이 해석되고 JavaScript가 실행되는 클라이언트에 대한 응답으로 전송됩니다. 일단 PHP가 응답 출력을 끝내면 스크립트는 끝나고 새로운 HTTP 요청이 들어올 때까지 서버에서 아무 일도 일어나지 않습니다.

    예제 코드는 다음과 같이 실행됩니다.

    <script type="text/javascript">
        var foo = 'bar';
        <?php
            file_put_contents('foo.txt', ' + foo + ');
        ?>
    
        var baz = <?php echo 42; ?>;
        alert(baz);
    </script>
    

    1 단계에서 PHP는 태그 사이의 모든 코드를 실행합니다. 결과는 다음과 같습니다.

    <script type="text/javascript">
        var foo = 'bar';
    
        var baz = 42;
        alert(baz);
    </script>
    

    file_put_contents 호출이 아무런 결과도 가져 오지 못했지만 파일에 "+ foo +"를 썼습니다. 호출은 "42"라는 결과를 가져 왔으며, 이제는 그 코드가 있던 지점에 있습니다.

    이 결과 HTML / JavaScript 코드는 이제 클라이언트로 전송되어 평가됩니다. 경고 호출은 작동하지만 foo 변수는 어디에도 사용되지 않습니다.

    클라이언트가 자바 스크립트를 실행하기 전에 모든 PHP 코드가 서버에서 실행됩니다. 자바 스크립트가 반응 할 수있는 PHP 코드가 없습니다.

    PHP 코드를 호출하기 위해 클라이언트는 새로운 HTTP 요청을 서버에 보내야합니다. 가능한 세 가지 방법 중 하나를 사용하여이 문제가 발생할 수 있습니다.

    이 방법을 개괄적으로 설명하는 질문은 다음과 같습니다.

    또한 자바 스크립트를 사용하여 브라우저가 window.location을 사용하여 새 페이지를 열거 나 폼을 제출하여 가능성 1과 2를 에뮬레이션 할 수 있습니다.

  2. ==============================

    2.

    JavaScript 코드에서 PHP 코드가 작동하지 않는 이유를 확인하려면 클라이언트 측 및 서버 측 언어와 작동 방식을 이해해야합니다.

    서버 측 언어 (PHP 등) : 데이터베이스에서 레코드를 검색하고, 상태 비 저장 HTTP 연결을 통해 상태를 유지하며, 보안이 필요한 많은 작업을 수행합니다. 이들은 서버에 상주하며,이 프로그램은 소스 코드를 사용자에게 공개하지 않습니다.

    따라서 서버 측 언어가 HTTP 요청을 처리하고 처리하는 것을 쉽게 볼 수 있으며 @deceze는 PHP가 서버에서 실행되며 HTML이 해석되는 클라이언트에 대한 응답으로 보내지는 일부 HTML 및 JavaScript 코드를 출력한다고 말하면서 실행됩니다.

    반면에 클라이언트 측 언어 (자바 스크립트와 같은)는 브라우저에 상주하며 브라우저에서 실행되지만 클라이언트 측 스크립팅은 일반적으로 클라이언트 측에서 실행되는 웹상의 컴퓨터 프로그램 클래스를 사용자의 웹 브라우저에서 참조합니다 서버 측의

    자바 스크립트는 사용자가 볼 수 있으며 쉽게 수정할 수 있으므로 보안을 위해 자바 스크립트를 사용해서는 안됩니다.

    그래서 서버에서 HTTP 요청을 할 때 서버가 먼저 PHP 파일을주의 깊게 읽고 실행해야 할 작업이 있는지 확인하고 클라이언트에 응답을 보내십시오. @deceze는 PHP가 응답을 출력 한 후에 스크립트가 끝나고 새 HTTP 요청이 들어올 때까지 서버에서 아무 것도 일어나지 않습니다. *

    이제 PHP를 호출해야한다면 어떻게 할 수 있습니까? 그것은 당신이 그것을해야하는 방법에 의존 : 페이지를 다시로드하거나 AJAX 호출을 사용하여.

    좋은 읽기 :

  3. ==============================

    3.

    Javascript는 서버가 아닌 클라이언트에서 실행됩니다. 이는 foo가 서버 측에서 평가되지 않으므로 해당 값을 서버의 파일에 쓸 수 없음을 의미합니다.

    이 프로세스를 생각하는 가장 좋은 방법은 텍스트 파일을 동적으로 생성하는 것입니다. 생성하는 텍스트는 브라우저에서 해석 한 후에 만 ​​실행 가능 코드가됩니다.

    HTML 또는 자바 스크립트에 임의의 PHP 로직을 포함시키는 습관을 만들면 코드가 복잡해질 수 있습니다. 나는 아픈 경험에서 말한다.

  4. ==============================

    4.

    웹 응용 프로그램에서 모든 작업은 요청 및 응답 방식으로 실행됩니다.

    클라이언트 측 프로그래밍은 자바 스크립트 및 그 프레임 워크가있는 html 코드로, 인터넷 익스플로러, 모질라, 크롬 브라우저에서 실행됩니다. 자바 시나리오에서 서버 사이드 프로그래밍 서블릿은 Tomcat, 웹 로직, j 보스, WebSphere Severs에서 실행됩니다.

  5. ==============================

    5.

    나는 그것을 간단한 방식으로 설명하려고 노력할 것이다.

    클라이언트 측은 브라우저에서 볼 수있는 사용자 / 코드입니다.

    클라이언트 측 프로그래밍에는 HTML (HTML, HTML5, DHTML), CSS (CSS, CSS3) 및 JavaScript (JavaScript, ES5, ES6, ES7, TypeScript, JQuery, ReactJs, AngularJs, BackboneJs 또는 기타 JavaScript 프론트 엔드 프레임 워크)가 포함됩니다.

    클라이언트 측 프로그래밍은 "페이지가 어떻게 보일 것인가"와 브라우저에 대한 동작에 중점을 둡니다.

    서버 측 프로그래밍에는 클라이언트 측에 데이터를 제공하는 코드가 포함됩니다. 사용자는 서버 측을 결코 볼 수 없습니다.

    서버 측 프로그래밍은 프로그래밍 언어 (Java, PHP, .NET, C #, C, C ++, NodeJS 등), 데이터베이스 (SQL, Oracle, MySql, PostgreySql, No-SQL, MongoDB 등), 타사 API (나머지, 비누 ), 비즈니스 로직.

    서버 측 프로그래밍은 "클라이언트 측에서 데이터를 사용할 수있게 만드는 방법"에 중점을 둡니다.

    서버 측에서 제공하는 API를 통해 서버 측에서 클라이언트 측 요청 데이터 또는 데이터 저장 요청. 이 요청 및 데이터 응답은 REST API, SOAP API와 같은 HTTP / FTP 프로토콜을 사용하여 수행됩니다.

  6. from https://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-server-side-programming by cc-by-sa and MIT lisence