網頁程式設計/網頁和網頁程式設計
什麼是網路?被稱為全球資訊網,網路是在網際網路上執行的應用程式或服務,網際網路是基礎設施(資訊高速公路 - 傳輸機制)。網際網路是全球互聯的計算機網路,就像一個郵政系統,允許我們傳遞各種型別的郵件,而“網路”就是其中之一。最初,網路被設計為一個分散式的超文字文件共享系統。現在它已經發展成為一個用於分散式應用程式的平臺。想想你使用的所有網路應用程式,例如谷歌搜尋引擎、亞馬遜網上商店和優酷。
網路基於簡單的客戶端-伺服器模型。如圖所示,客戶端傳送請求,伺服器透過傳送響應進行回覆。
這是一個相當簡單的模型,但我們可以用這個簡單的模型構建強大的應用程式。
客戶端和伺服器都是軟體實體,但都執行在硬體平臺上。同一個硬體平臺可以有多個軟體實體執行。通常,Web 客戶端是 Web 瀏覽器,例如 IE、Firefox 或 Chrome,Web 客戶端是 Web 伺服器,例如 Apache 和 IIS。當 Web 伺服器使用其他 Web 伺服器提供的 Web 服務時,Web 客戶端和 Web 伺服器之間的界限變得模糊,因此成為它們的客戶端。
每個 Web 應用程式都有兩個元件:客戶端和伺服器端。有一些程式設計框架(例如 Google App Engine)可用於將 Web 應用程式作為一個整體進行編寫,方法是自動生成客戶端。我們將手動管理這兩個元件,以便更好地瞭解 Web 基礎知識。
HTTP 代表超文字傳輸協議,它是網路上通訊的約定標準(規則集)。它就像一種語言,任何能說這種語言的程式都可以作為 Web 的成員,成為客戶端、伺服器或兩者兼而有之。每個在網際網路上執行的服務都有自己的協議,例如IMAP 用於電子郵件檢索,FTP 用於檔案傳輸,以及SNMP 用於網路管理。
你無需精通 HTTP 協議即可建立 Web 應用程式。Web API(應用程式程式設計介面)允許我們透過抽象掉常見任務(管道)的細節來專注於應用程式邏輯。如圖所示,API 提供了對詳細機制的更高層抽象。
瀏覽器充當使用者代理,代表人類使用者發出 HTTP 請求。例如,當用戶點選超連結時,瀏覽器會發送 HTTP 請求。請求可以是 GET 請求,例如獲取新頁面,也可以是 POST 請求,將(表單)資料傳送到伺服器。我們作為程式設計師,也可以透過呼叫客戶端程式碼中(由瀏覽器提供的 API 部分)的函式來發送請求,該程式碼在瀏覽器中執行。
URL(統一資源定位符)也稱為網路地址。Web 上的任何資源都由 URL 標識,URL 在全球範圍內必須唯一。
下圖顯示了一個指向 Web 伺服器上檔案(資源)的 URL 示例
當 URL 傳送到伺服器時,伺服器將對映 URL 的其餘部分 -/~blu/helloworld.html- 到伺服器檔案系統中的路徑/home/blu/public_html/helloworld.html。換句話說,任何在/~blu/之後的都會附加到/home/blu/用於在伺服器上查詢資源(檔案)。
在前面的示例中,如果以下文字位於 helloworld.html 檔案中,在位址列中輸入 URL 並按下回車鍵後,你將在瀏覽器視窗中看到該文字。
Hello World!
透過瀏覽器傳送 URL 會觸發對伺服器的 GET 請求,以獲取 URL 中標識的資源。對請求的響應是檔案的原始內容。這是展示客戶端-伺服器模型如何工作的最簡單示例。