跳轉到內容

網頁程式設計/網頁和網頁程式設計

來自華夏公益教科書,開放的書籍,開放的世界

網路和網際網路

[編輯 | 編輯原始碼]

什麼是網路?被稱為全球資訊網,網路是在網際網路上執行的應用程式或服務,網際網路是基礎設施(資訊高速公路 - 傳輸機制)。網際網路是全球互聯的計算機網路,就像一個郵政系統,允許我們傳遞各種型別的郵件,而“網路”就是其中之一。最初,網路被設計為一個分散式的超文字文件共享系統。現在它已經發展成為一個用於分散式應用程式的平臺。想想你使用的所有網路應用程式,例如谷歌搜尋引擎、亞馬遜網上商店和優酷。

客戶端-伺服器模型

[編輯 | 編輯原始碼]

網路基於簡單的客戶端-伺服器模型。如圖所示,客戶端傳送請求,伺服器透過傳送響應進行回覆。

In a simple client-server model a client sends a request and gets a response back. The client always initiate the interaction.

這是一個相當簡單的模型,但我們可以用這個簡單的模型構建強大的應用程式。

客戶端和伺服器都是軟體實體,但都執行在硬體平臺上。同一個硬體平臺可以有多個軟體實體執行。通常,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 提供了對詳細機制的更高層抽象。

APIs available on both the client side and the server side makes Web programming easier allowing programmers to build web application on top of a high-level interface.

瀏覽器充當使用者代理,代表人類使用者發出 HTTP 請求。例如,當用戶點選超連結時,瀏覽器會發送 HTTP 請求。請求可以是 GET 請求,例如獲取新頁面,也可以是 POST 請求,將(表單)資料傳送到伺服器。我們作為程式設計師,也可以透過呼叫客戶端程式碼中(由瀏覽器提供的 API 部分)的函式來發送請求,該程式碼在瀏覽器中執行。

URL(統一資源定位符)也稱為網路地址。Web 上的任何資源都由 URL 標識,URL 在全球範圍內必須唯一。

下圖顯示了一個指向 Web 伺服器上檔案(資源)的 URL 示例

Every URL has three components: the protocol, the ID of the server, and the path to the resource on the server.

當 URL 傳送到伺服器時,伺服器將對映 URL 的其餘部分 -/~blu/helloworld.html- 到伺服器檔案系統中的路徑/home/blu/public_html/helloworld.html。換句話說,任何在/~blu/之後的都會附加到/home/blu/用於在伺服器上查詢資源(檔案)。

"Hello World!" 示例

[編輯 | 編輯原始碼]

在前面的示例中,如果以下文字位於 helloworld.html 檔案中,在位址列中輸入 URL 並按下回車鍵後,你將在瀏覽器視窗中看到該文字。

Hello World!

透過瀏覽器傳送 URL 會觸發對伺服器的 GET 請求,以獲取 URL 中標識的資源。對請求的響應是檔案的原始內容。這是展示客戶端-伺服器模型如何工作的最簡單示例。

華夏公益教科書