深入理解計算機系統 第十一章 網路程式設計 (2)

2022-08-05 10:48:16 字數 1478 閱讀 7622

一、web基礎

web客戶端和伺服器之間的互動用的是乙個基於文字的應用級協議,叫做http(hypertext transfer protocol,超文字傳輸協議)。http是乙個簡單的協議。乙個web客戶端(即瀏覽器)開啟乙個到伺服器的網際網路連線,並且請求某些內容。伺服器響應所請求的內容,然後關閉連線。伺服器讀取這些內容,並把它顯示在螢幕上。

二、web內容

對於web客戶端和伺服器而言,內容是與乙個mime(multipurpose internet mail extensions,多用途的網際郵件擴充協議)型別相關的位元組序列。

web伺服器以兩種不同的方式向客戶端提供內容:

取乙個磁碟檔案,並將它的內容返回給客戶端。磁碟檔案稱為靜態內容(static content),而返回檔案給客戶端的過程稱為服務靜態內容(serving static content)。

執行乙個可執行檔案,並將它的輸出返回給客戶端。執行時可執行檔案產生的輸出稱為動態內容(dynamic content),而執行程式並返回它的輸出到客戶端的過程稱為服務動態內容(serving dynamic content)。

每條由web伺服器返回的內容都是和它管理的某個檔案相關聯的。這些檔案中的每乙個都有乙個唯一的名字,叫做url(universal resource locator,通用資源定位符)。

三、http 事務

因為http是基於在網際網路連線上傳送的文字行的,我們可以使用linux的telnet程式來和網際網路上的任何web伺服器執行事務。對於除錯在連線上通過文字行來與客戶端對話的伺服器來說,telnet程式是非常便利的。

為了發起事務,我們輸入乙個http請求,伺服器返回http響應,然後關閉連線。

1)、http請求

乙個http請求的組成是這樣的:乙個請求行(request line),後面跟隨零個或更多個請求報頭(request header),再跟隨乙個空的文字行來終止報頭列表,乙個請求行的形式是:

method  uri  version

http支援許多不同的方法,包括get、post、options、head、put、delete和trace。

get方法指導伺服器生成和返回uri(uniform resource identifier,統一資源識別符號)標識的內容。uri是相應的url的字尾,包括檔名和可選的引數。

請求行中的version欄位表明了該請求遵循的http版本。

2)、http響應

http響應和http請求是相似的。乙個http響應的組成是這樣的:乙個響應行(response line),後面跟隨著零個或更多的響應報頭(response header),再跟隨乙個終止報頭的空行,再跟隨乙個響應主體(response body)。乙個響應行的格式是:

version status-code status-message

version欄位描述的是響應所遵循的http版本。狀態碼(status-code)是乙個3位的正整數,指明對請求的處理。狀態訊息(status message)給出與錯誤**等價的英文描述。

深入理解計算機原理第十一章 網路程式設計

客戶端 伺服器由4個事務組成,如下圖 認識到客戶端和伺服器是程序,而不是常常提到的機器或者主機,這很重要。對於乙個主機而言,網路只是又一種i o裝置,作為資料來源和資料接收方。就想鍵盤 滑鼠等其他i o一樣,作為乙個檔案進行操作。圖 乙個網路主機的硬體組成 lan 區域網 1 較小的區域網 例如乙個...

深入理解計算機系統

關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...

《深入理解計算機系統》

知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...