찾다

 >  Q&A  >  본문

클라이언트측 프로그래밍과 서버측 프로그래밍: 차이점 이해

다음 코드가 있습니다:

으아악

왜 내 텍스트 파일에 "bar"를 쓰지 않고 대신 "42"를 경고합니까?


참고: 이 질문의 이전 개정판에서는 서버의 PHP와 클라이언트의 JavaScript를 명시적으로 다루었습니다. 한 언어가 클라이언트에서 실행되고 다른 언어가 서버에서 실행되는 경우(동일한 언어라도) 문제의 성격과 해결 방법은 모든언어에서 동일합니다. 특정 언어에 관한 답변을 볼 때 이것을 고려하십시오.

P粉141035089P粉141035089421일 전702

모든 응답(2)나는 대답할 것이다

  • P粉717595985

    P粉7175959852023-10-20 14:58:23

    PHP 코드가 JavaScript 코드에서 작동하지 않는 이유를 확인하려면 클라이언트 측 언어와 서버 측< /strong> 언어가 무엇이고 어떻게 작동하는지 이해해야 합니다.

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

    따라서 서버 측 언어가 HTTP 요청을 처리하고 @deceze가 말했듯이 PHP는 서버에서 실행되어 일부 HTML 및 JavaScript 코드를 출력하고 응답으로 클라이언트에 전송된다는 것을 쉽게 알 수 있습니다. , HTML을 해석하고 JavaScript를 실행합니다.

    반면에 클라이언트 측 언어(예: JavaScript) 는 브라우저에 상주하고 실행됩니다. 클라이언트측 스크립트는 일반적으로 서버측이 아닌 사용자의 웹 브라우저에 의해 클라이언트측에서 실행되는 네트워크상의 컴퓨터 프로그램 클래스를 나타냅니다. p>

    JavaScript는 사용자에게 표시되고 쉽게 수정될 수 있으므로 보안을 위해 JavaScript에 의존할 수 없습니다.

    그래서 서버에 HTTP 요청을 하면 서버는 먼저 PHP 파일을 주의 깊게 읽어 수행해야 할 작업이 있는지 확인한 다음 클라이언트에 응답을 보냅니다. @deceze가 말했듯이 *PHP가 응답 출력을 마치면 스크립트가 종료되고 새로운 HTTP 요청이 올 때까지 서버에서는 아무 일도 일어나지 않습니다. *

    이제 PHP를 호출해야 한다면 어떻게 해야 할까요? 페이지를 다시 로드하거나 AJAX 호출을 사용하여 이를 수행하는 방법에 따라 다릅니다.

    1. 페이지를 다시 로드하고 HTTP 요청
    2. 을 보내면 됩니다.
    3. JavaScript를 사용하여 AJAX 호출을 할 수 있습니다. 페이지를 다시 로드할 필요가 없습니다

    잘 읽었습니다:

    1. Wikipedia: 서버 측 스크립트
    2. Wikipedia: 클라이언트 스크립트
    3. Madara Uchiha: 클라이언트 측 프로그래밍과 서버 측 프로그래밍의 차이점

    회신하다
    0
  • P粉256487077

    P粉2564870772023-10-20 13:47:59

    귀하의 코드는 완전히 독립적인 두 부분, 즉 서버 측클라이언트 측으로 나뉩니다.

    으아악

    양 당사자는 HTTP 요청과 응답을 통해 통신합니다. PHP는 서버에서 실행되어 일부 HTML 및 JavaScript 코드를 출력합니다. 이 코드는 클라이언트에 대한 응답으로 전송되며, 여기서 HTML이 해석되고 JavaScript가 실행됩니다. PHP가 응답 출력을 마치면 스크립트가 종료되고 새 HTTP 요청이 올 때까지 서버에서는 아무 일도 일어나지 않습니다.

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

    으아악

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

    으아악

    file_put_contents 调用没有产生任何结果,它只是将“ + foo + ”写入文件。 호출 결과 "42"가 출력되며, 이제 이 코드는 원래 있던 위치에 있습니다.

    생성된 HTML/JavaScript 코드는 이제 클라이언트로 전송되어 평가됩니다. alert 调用有效,而 foo 어디에도 사용되지 않는 변수입니다.

    모든 PHP 코드는 클라이언트가 JavaScript 실행을 시작하기 전에 서버에서 실행됩니다. JavaScript가 상호 작용할 수 있는 응답에는 PHP 코드가 남아 있지 않습니다.

    특정 PHP 코드를 호출하려면 클라이언트가 서버에 새로운 HTTP 요청을 보내야 합니다. 이는 세 가지 가능한 방법 중 하나를 사용하여 달성할 수 있습니다:

    1. 브라우저에서 새 페이지를 로드하게 하는 링크입니다.
    2. 양식 제출, 데이터를 서버에 제출하고 새 페이지를 로드합니다.
    3. AJAX 요청은 현재 페이지를 떠나지 않고 서버에 대한 일반 HTTP 요청(1. 및 2. 참조)을 생성하는 데 사용되는 Javascript 기술입니다.

    여기에 이러한 방법을 더 자세히 설명하는 질문이 있습니다

    JavaScript를 사용하여 브라우저에 window.location을 사용하여 새 페이지를 열거나 양식을 제출하도록 지시하여 가능성 1과 2를 시뮬레이션할 수도 있습니다.

    회신하다
    0
  • 취소회신하다