2017-09-23 10 views
1

假設,我在服務器上有一個PHP文件,其中包含一些文本,HTML,CSS,JavaScript和PHP代碼。在同一個PHP文件中出現的客戶端和服務器代碼的代碼分解/分解是怎樣的?

據我所知,任何PHP代碼都是在接收到來自客戶端(即網頁瀏覽器)對同一PHP文件的請求後在服務器端執行的。

來自PHP文件的其餘代碼,即HTML,CSS和JavaScript代碼在客戶端執行(即在Web瀏覽器中)。換句話說,Web瀏覽器的工作就是在客戶端自己執行這樣的代碼。

我的問題是所有的東西(即文本,HTML,CSS,JavaScript和PHP代碼)存在於具有PHP擴展名的同一文件中,並且此文件僅在從客戶端接收到同一文件的請求時纔開始執行。

然後,在收到請求後,代碼分離是如何完成的以及誰做的?

通過分離,我的意思是分離服務器端代碼和客戶端代碼。誰以及這種代碼分離是如何發生的?另外,最終我得到了單個頁面上所有代碼的結果(即我要求的PHP文件)。誰以及如何將服務器和客戶端代碼的輸出重新組合到一個文件中? ( - 凡不PHP,或由PHP代碼產生HTML,CSS,JavaScript,圖片)到客戶端

回答

1

PHP是服務器,其輸出僅內容上運行。所有這些都將在接收時由客戶端處理 - html和css將被解析和顯示,javascript將被執行,並且其他所有內容都以自己的方式處理。您可能會在瀏覽器開發工具中看到來自客戶端的每個請求,以及服務器響應(每個請求都有一個mimetype,這意味着它只有一種內容)。一個完整的,標準的網頁通常會發送幾個請求,主要的HTML體只是其中的第一個。

+0

您的意思是從客戶端收到服務器請求後首先執行PHP代碼並執行非php內容(html,css,javascript,images - 不管是不是php,還是由php代碼生成)被髮送回瀏覽器作爲迴應?在瀏覽器端收到PHP處理的響應之前,沒有HTML,CSS,JavaScript等會被解析/執行?服務器端代碼是否首先執行,然後執行其餘部分,即HTML,CSS,JavaScript,圖像 - 不管是不是PHP,還是由PHP代碼生成? – user2839497

+0

非常多,一個服務器請求=發送回客戶端的一種內容。如果該內容是動態的(php代碼),php會一路執行,並可以隨意更改響應,否則內容將按原樣發送(服務器添加描述內容類型的MIME類型,但這是關於它的)。然後,每個內容都會被客戶端接收和解析,並可能觸發隨後的附加內容請求(js,圖像,css,視頻,您將其命名),這些內容又可能是動態的,等等。 – Calimero

相關問題