天天看點

28、深入了解計算機系統筆記,Web伺服器簡介

1、Web伺服器以兩種不同的方式向用戶端提供内容:

1)靜态内容(static content):從伺服器磁盤取得檔案并把它傳回用戶端來服務。

2)動态内容(dynamic content):運作一個可執行檔案,并把它的輸出傳回給用戶端。在伺服器上一個子程序的上下文中運作一個程式并将它的輸出傳回給用戶端來服務。

2、在URL中,“?”用來分隔檔案名和參數,多個參數用“&”來分隔。參數中不允許空格,用“%20”來表示。

3、确定一個URL指向的是靜态内容還是動态内容沒有标準的規則。一種常見的方法是,确認一組目錄,如cgi-bin,所有的可執行性檔案都放在這這些目錄中。

<a href="https://mail.qq.com/cgi-bin/frame_html?sid=dKCN-6tpo1JFKQhG&amp;r=bcdb4ca744f9b60c166829ecc4cf6a8a">https://mail.qq.com/cgi-bin/frame_html?sid=dKCN-6tpo1JFKQhG&amp;r=bcdb4ca744f9b60c166829ecc4cf6a8a</a>

1)如,最後一個“/”不是unix的根目錄,而表示被請求内容類型的主目錄。

2)最小的URL後辍是“/”字元,所有的伺服器将其擴充為某個預設的主面。

4、HTTP事務

1)HTTP請求

執行的格式是:&lt;method&gt; &lt;uri&gt; &lt;version&gt;

如:GET / HTTP/1.1

2)HTTP響應

執行格式:&lt;version&gt; &lt;status code&gt; &lt;status message&gt;

如:HTTP/1.0 200 OK

3)通過CGI(common gateway interface),來解決用戶端與伺服器互動問題,如用戶端如何将參數傳給伺服器,伺服器如何将這些參數傳給它所建立的子程序?伺服器如何将子程序生成内容所需要的其他資訊傳遞給子程序?等。

5、書中設計了一個小型的web伺服器。