HTTP和html
在Web應用中,伺服器把網頁傳給瀏覽器,實際上就是把網頁的HTML程式碼傳送給瀏覽器,讓瀏覽器顯示出來。而瀏覽器和伺服器之間的傳輸協議是HTTP,所以:
-
HTML是一種用來定義網頁的文字,會HTML,就可以編寫網頁;
-
HTTP是在網路上傳輸HTML的協議,用於瀏覽器和伺服器的通訊
瞭解了HTTP協議和HTML文件,我們其實就明白了一個Web應用的本質就是:
-
瀏覽器傳送一個HTTP請求;
-
伺服器收到請求,生成一個HTML文件;
-
伺服器把HTML文件作為HTTP響應的Body傳送給瀏覽器;
-
瀏覽器收到HTTP響應,從HTTP Body取出HTML文件並顯示。
HTTP請求
跟蹤了新浪的首頁,我們來總結一下HTTP請求的流程:
步驟1:瀏覽器首先向伺服器傳送HTTP請求,請求包括:
方法:GET
還是POST
,GET
僅請求資源,POST
會附帶使用者資料;
路徑:/full/url/path
;
域名:由Host頭指定:Host: www.sina.com.cn
以及其他相關的Header;
如果是POST,那麼請求還包括一個Body,包含使用者資料。
步驟2:伺服器向瀏覽器返回HTTP響應,響應包括:
響應程式碼:200
表示成功,3xx
表示重定向,4xx
表示客戶端傳送的請求有錯誤,5xx
表示伺服器端處理時發生了錯誤;
響應型別:由Content-Type
指定,例如:Content-Type: text/html;charset=utf-8
UTF-8
,Content-Type: image/jpeg
表示響應型別是JPEG格式的圖片;
以及其他相關的Header;
通常伺服器的HTTP響應會攜帶內容,也就是有一個Body,包含響應的內容,網頁的HTML原始碼就在Body中。
步驟3:如果瀏覽器還需要繼續向伺服器請求其他資源,比如圖片,就再次發出HTTP請求,重複步驟1、2。
Web採用的HTTP協議採用了非常簡單的請求-響應模式,從而大大簡化了開發。當我們編寫一個頁面時,我們只需要在HTTP響應中把HTML傳送出去,不需要考慮如何附帶圖片、視訊等,瀏覽器如果需要請求圖片和視訊,它會發送另一個HTTP請求,因此,一個HTTP請求只處理一個資源。
HTTP協議同時具備極強的擴充套件性,雖然瀏覽器請求的是http://www.sina.com.cn/
的首頁,但是新浪在HTML中可以鏈入其他伺服器的資源,比如<img src="http://i1.sinaimg.cn/home/2013/1008/U8455P30DT20131008135420.png">
,從而將請求壓力分散到各個伺服器上,並且,一個站點可以連結到其他站點,無數個站點互相連結起來,就形成了World Wide Web,簡稱“三達不溜”(WWW)。
HTTP請求
跟蹤了新浪的首頁,我們來總結一下HTTP請求的流程:
步驟1:瀏覽器首先向伺服器傳送HTTP請求,請求包括:
方法:GET
還是POST
,GET
僅請求資源,POST
會附帶使用者資料;
路徑:/full/url/path
;
域名:由Host頭指定:Host: www.sina.com.cn
以及其他相關的Header;
如果是POST,那麼請求還包括一個Body,包含使用者資料。
步驟2:伺服器向瀏覽器返回HTTP響應,響應包括:
響應程式碼:200
表示成功,3xx
表示重定向,4xx
表示客戶端傳送的請求有錯誤,5xx
表示伺服器端處理時發生了錯誤;
響應型別:由Content-Type
指定,例如:Content-Type: text/html;charset=utf-8
表示響應型別是HTML文字,並且編碼是UTF-8
,Content-Type: image/jpeg
表示響應型別是JPEG格式的圖片;
以及其他相關的Header;
通常伺服器的HTTP響應會攜帶內容,也就是有一個Body,包含響應的內容,網頁的HTML原始碼就在Body中。
步驟3:如果瀏覽器還需要繼續向伺服器請求其他資源,比如圖片,就再次發出HTTP請求,重複步驟1、2。
Web採用的HTTP協議採用了非常簡單的請求-響應模式,從而大大簡化了開發。當我們編寫一個頁面時,我們只需要在HTTP響應中把HTML傳送出去,不需要考慮如何附帶圖片、視訊等,瀏覽器如果需要請求圖片和視訊,它會發送另一個HTTP請求,因此,一個HTTP請求只處理一個資源。
HTTP協議同時具備極強的擴充套件性,雖然瀏覽器請求的是http://www.sina.com.cn/
的首頁,但是新浪在HTML中可以鏈入其他伺服器的資源,比如<img src="http://i1.sinaimg.cn/home/2013/1008/U8455P30DT20131008135420.png">
,從而將請求壓力分散到各個伺服器上,並且,一個站點可以連結到其他站點,無數個站點互相連結起來,就形成了World Wide Web,簡稱“三達不溜”(WWW)。