http協議與網路基礎
#複習
##http協議與網路基礎
- 網路訪問過程
1.拿到瀏覽器的ip之後,和對應的伺服器建立tcp連線
2.瀏覽器傳輸的內容通過http傳送給伺服器,這個時候的這個http就毀掉了
3.伺服器得到請求之後進行解析,將解析的結果通過http走tcp返回到伺服器去,
4.瀏覽器接到訊息之後tcp連線中斷
**(- url
- 協議名:協議的版本號(https)
- 網域名稱/ip位址(www.so.com)
- 埠號(預設是80)(0-1024
)- 檔案路徑(檔案路徑 /s)
- 查詢字串(?號後面的是查詢字串)
- ip(internet protocol)
-內容:它是能使連線到網上的所有計算機網路實現相互通訊的一套規則
網際協議位址。ip位址是ip協議提供的一種統一的位址格式,
它為網際網路上的每乙個網路和每一台主機分配乙個邏輯位址,以此來遮蔽實體地址的差異。
ip網路使用32位(二進位制)位址,以點分十進位制表示,如192.168.0.1
內容:ip協議傳輸的是資料報(data packet)。
計算機將需要傳送的資料分段打成包,然後把包乙個乙個的傳送出去。
- 定址
- tcp
-內容:傳輸控制協議(tcp),是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,tcp層是位於ip層之上,應用層之下的中間層。不同主機的應用層之間經常需要可靠的、像管道一樣的連線,但是ip層不提供這樣的流機制,而是提供不可靠的包交換
- 功能:建立連線
- 請求報文(向伺服器傳送的訊息)
-請求報文的一般格式
- 請求頭
- 第一行
- 請求方法(get/post/head/put/delete)
- url
- 版本號(http.1.1用的最多)
- 請求首部字段
- 查表
其中host--content是請求報文的首部字段;我們一般不用寫,由遊覽器自動生成
- 請求體
- 空- 非空
- 響應報文(伺服器對瀏覽器訪問的回應)
- 響應頭
);}- 第一行
- 版本號
- 狀態碼
- 狀態碼說明字段
- 響應首部字段
- 查表
- 響應體(瀏覽器根據伺服器返回的響應體將頁面畫出來)
- 具體內容(html)
- tcp
- 斷開連線
- res.end
請求方法:
路由:瀏覽器和伺服器對接的路徑
狀態碼說明字段
http訪問的狀態碼:
200 - 伺服器成功返回網頁 404 - 請車載***求的網頁不存在 503 - 服務不可用
1xx(臨時響應)
表示臨時響應並需要請求者繼續執行操作的狀態**。
** 說明
100 (繼續) 請求者應當繼續提出請求。 伺服器返回此**表示已收到請求的第一部分,正在等待其餘部分。
101 (切換協議) 請求者已要求伺服器切換協議,伺服器已確認並準備切換。
2xx (成功)
表示成功處理了請求的狀態**。
** 說明
200 (成功) 伺服器已成功處理了請求。 通常,這表示伺服器提供了請求的網頁。
201 (已建立) 請求成功並且伺服器建立了新的資源。
202 (已接受) 伺服器已接受請求,但尚未處理。
203 (非授權資訊) 伺服器已成功處理了請求,但返回的資訊可能來自另一**。
204 (無內容) 伺服器成功處理了請求,但沒有車載***導航返回任何內容。
205 (重置內容) 伺服器成功處理了請求,但沒有返回任何內容。
206 (部分內容) 伺服器成功處理了部分 get 請求。
3xx (重定向)
表示要完成請求,需要進一步操作。 通常,這些狀態**用來重定向。
** 說明
300 (多種選擇) 針對請求,伺服器可執行多種操作。 伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作列表
供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 伺服器返回此響應(對 get 或 head 請求的響應)時,會自動將請求
者轉到新位置。
302 (臨時移動) 伺服器目前從不同位置的車載***導航儀網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
303 (檢視其他位置) 請求者應當對不同的位置使用單獨的 get 請求來檢索響應時,伺服器返回此**。
304 (未修改) 自從上次請求後,請求的網頁未修改過。 伺服器返回此響應時,不會返回網頁內容。
305 (使用**) 請求者只能使用**訪問請求的網頁。 如果伺服器返回此響應,還表示請求者應使用**。
307 (臨時重定向) 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
4xx(請求錯誤)
這些狀態**表示請求可能出錯,妨礙了伺服器的處理。
** 說明
400 (錯誤請求) 伺服器不理解請求的語法。
401 (未授權) 請求要求身份驗證。 對於需要登入的網頁,伺服器可能返回此響應。
403 (禁止) 伺服器拒絕請求。
404 (未找到) 伺服器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性響應請求的網頁。
407 (需要**授權) 此狀態**與 401(未授權)類似,但指定請求者應當授權使用**。
408 (請求超時) 伺服器等候請求時發生超時。
409 (衝突) 伺服器在完成請求時發生衝突。 伺服器必須在響應中包含有關衝突的資訊。
410 (已刪除) 如果請求的資源已永久刪除,伺服器就會返回此響應。
411 (需要有效長度) 伺服器不接受不含有效內容長度標頭字段的請求。
412 (未滿足前提條件) 伺服器未滿足請求者在請求中設定的其中乙個前提條件。
413 (請求實體過大) 伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。
414 (請求的 uri 過長) 請求的 uri(通常為**)過長,伺服器無法處理。
415 (不支援的**型別) 請求的格式不受請求頁面的支援。
416 (請求範圍不符合要求) 如果頁面無法提供請求的範圍,則伺服器會返回此狀態**。
417 (未滿足期望值) 伺服器未滿足"期望"請求標頭字段的要求。
5xx(伺服器錯誤)
這些狀態**表示伺服器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
** 說明
500 (伺服器內部錯誤) 伺服器遇到錯誤,無法完成請求。
501 (尚未實施) 伺服器不具備完成請求的功能。 例如,伺服器無法識別請求方法時可能會返回此**。
502 (錯誤閘道器) 伺服器作為閘道器或**,從上游伺服器收到無效響應。
503 (服務不可用) 伺服器目前無法使用(由於超載或停機維護)。 通常,這只是暫時狀態。
504 (閘道器超時) 伺服器作為閘道器或**,但是沒有及時從上游伺服器收到請求。
505 (http 版本不受支援) 伺服器不支援請求中所用的 http 協議版本
當天的典型**:
var url = require('url'); //引入 url 包
res.end('首頁');
break;
case '/login':
res.writehead(200, 'ok', );
var username = query.username;
var password = query.password;
res.write(username);
res.write('
');
res.write(password);
res.write('
');
res.end('登入結束' );
default:
res.writehead(404, 'not found', );
res.end('網頁沒找到'); }
});server.listen(3000, function listencallback() );
網路基礎 HTTP協議概述
web伺服器是web資源的宿主,web資源是web內容的源頭。最簡單的web資源就是存放在web伺服器檔案系統中的靜態檔案。隨著網際網路的發展,所提供的服務也越來越豐富,靜態資源已經滿足不了使用者的多樣化需求了,需要根據使用者需求動態生成相應資源。為了讓客戶端可以指定想要訪問的資源,我們需要為web...
網路基礎與協議入門 (1)HTTP協議重點
1.概述 http是超文字傳輸協議,由全球資訊網協會和internet工作組合作發展,其中著名的rfc2616協議是http協議的核心。2.使用者 http使用者的客戶端,一般被稱為使用者 即user agent。3.源伺服器 http伺服器端,一般被稱為源伺服器,即origin server。4....
網路基礎與協議入門 (1)HTTP協議重點
1.概述 http是超文字傳輸協議,由全球資訊網協會和internet工作組合作發展,其中著名的rfc2616協議是http協議的核心。2.使用者 http使用者的客戶端,一般被稱為使用者 即user agent。3.源伺服器 http伺服器端,一般被稱為源伺服器,即origin server。4....