1. 程式人生 > >HTTP的head,狀態碼及Web服務器的工作流程

HTTP的head,狀態碼及Web服務器的工作流程

HTTP

HTTP協議首部: image/jpeg 動態效果:Java, Applet, JRE 動態網頁:

服務器端存儲的文檔非HTML格式,而是編程語言開發的腳本,腳本接受參數之後在服務器運行一次,
運行完成之後會生成HTML格式的文檔,把生成的文檔發給客戶端;
例:
web: index.php 執行過程:web --> procotol --> php (運行index.php) index.html:
在該文件中可以用超鏈接引用N個web對象(URL) 動態網頁:包含靜態內容和動態內容(動態內容部分才需運行)
緩存:
URL:(統一資源定位符)HTTP報文:請求報文,響應報文 請求報文語法:響應報文語法

HTTP狀態代碼:

1xx: 純信息
2xx:成功類的信息 這一類型的狀態碼,代表請求已成功被服務器接收、理解、並接受(200)
200 OK :請求已成功,請求所希望的響應頭或數據體將隨此響應返回。出現此狀態碼是表示正常狀態。
3xx: 重定向類的信息 這類狀態碼代表需要客戶端采取進一步的操作才能完成請求。(301)
301 Moved Permanently :被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若幹個 URI 之一。
4xx: 客戶端錯誤類的信息 (403,404)
403 Forbidden :權限不夠,服務器已經理解請求,但是拒絕執行它。
404 Not Found :

請求失敗,客戶端請求所希望得到的資源未被在服務器上發現。出現這個錯誤的最有可能的原因是服務器端沒有這個頁面。
5xx: 服務器端錯誤類的信息(500,502,503,504)
500 Internal Server Error: 一般來說是因為服務器端的源代碼出現錯誤時出現。
502 Bad Gateway :作為網關或者代理工作的服務器嘗試執行請求時,從上遊服務器接收到無效的響應。
503 Service Unavailable :由於臨時的(暫時性)服務器維護或者過載,服務器當前無法處理請求。
504 Gateway Timeout :作為網關或者代理工作的服務器嘗試執行請求時,未能及時從上遊服務器收到響應。

註意:

某些代理服務器在DNS查詢超時時會返回400或者500錯誤

響應報文:

每個首部域都由名稱(name)和值(value)組成,中間用逗號分隔。另外,響應報文通常還有一個稱作Body的信息主體,即響應給客戶端的內容。

Web服務器的主要操作:

1、建立連接——接受或拒絕客戶端連接請求;
2、接收請求——通過網絡讀取HTTP請求報文;
3、處理請求——解析請求報文並做出相應的動作;
4、訪問資源——訪問請求報文中相關的資源;
5、構建響應——使用正確的首部生成HTTP響應報文;
6、發送響應——向客戶端發送生成的響應報文;
7、記錄日誌——當已經完成的HTTP事務記錄進日誌文件;\

例如:一個頁面中包含: 10 image, 3 css, 5html,共18個資源。這18個資源是一個一個去請求、一個一個去傳輸的。所以現在的瀏覽器都是多線程的。
http, tcp: 三次握手,四次斷開 http/1.1: 增強了緩存的功能 長連接

HTTP的head,狀態碼及Web服務器的工作流程