計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信硫惕,雙方就必須基于相同的方法。比如敞斋,如何結(jié)束通信等規(guī)則都需要事先確定截汪。不同的硬件、操作系統(tǒng)之間的通信植捎,所有的這一切都需要一種規(guī)則衙解。而我們就把這種規(guī)則稱之為協(xié)議
例如:HTTP舉例。
首先作為發(fā)送端的客戶端在應(yīng)用層(HTTP協(xié)議)發(fā)出一個(gè)想要看某個(gè)web頁面的HTTP請求焰枢。
接著蚓峦,為了傳輸方便,在傳輸層(TCP協(xié)議)把從應(yīng)用層處收到的數(shù)據(jù)(HTTP請求報(bào)文)進(jìn)行分割济锄,并在各個(gè)報(bào)文上打上標(biāo)記序號(hào)及端口號(hào)后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層枫匾。
在網(wǎng)絡(luò)層(IP協(xié)議),增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層拟淮。
有關(guān)協(xié)議
與HTTP關(guān)系密切的協(xié)議:IP干茉、TCP和DNS
上述協(xié)議簡單作用
- IP網(wǎng)際協(xié)議位于網(wǎng)絡(luò)層。把各種數(shù)據(jù)包傳送到對方很泊。
- TCP協(xié)議位于傳輸層角虫,提供可靠地字節(jié)流服務(wù)。為了準(zhǔn)確無誤地將數(shù)據(jù)送到目的地委造。
- DNS服務(wù)位于應(yīng)用層戳鹅,提供域名到IP地址之間的解析服務(wù)。
HTTP協(xié)議是一種無狀態(tài)協(xié)議昏兆,它不會(huì)對發(fā)送來的請求和響應(yīng)都不會(huì)持久化處理枫虏。隨著web的發(fā)展需要保存用戶的狀態(tài)。于是就引入了Cookie技術(shù)。通過Cookie保存管理狀態(tài)隶债。
Cookie技術(shù)通過請求和響應(yīng)保溫中寫入Cookie信息來控制客戶端的狀態(tài)腾它。
Cookie會(huì)根據(jù)從服務(wù)端發(fā)送的響應(yīng)報(bào)文內(nèi)的一個(gè)叫做Set-Cookie的首部字段信息,通知客戶端保存Cookie死讹。當(dāng)下次客戶端再往該服務(wù)器發(fā)送請求時(shí)瞒滴,客戶端會(huì)自動(dòng)在請求報(bào)文中加上Cookie值后發(fā)送出去。
服務(wù)器端發(fā)現(xiàn)客戶端發(fā)送過來的Cookie后赞警,會(huì)去檢查究竟是從哪一個(gè)客戶端發(fā)來的連接請求妓忍,然后對比服務(wù)器上的記錄,最后得到之前的狀態(tài)信息愧旦。
HTTP的方法
-
GET:獲取資源
GET方法用于請求訪問已被URI識(shí)別的資源世剖。指定的資源經(jīng)服務(wù)器端解析后返回響應(yīng)內(nèi)容。當(dāng)然GET方法也可以傳輸實(shí)體的主體笤虫,但是一般不用GET方法進(jìn)行傳輸搁廓。.POST的安全性要比GET的安全性高,雖然URL的長度沒有限制耕皮,但是有的瀏覽器會(huì)對URL的長度限制境蜕。
-
POST:傳輸實(shí)體主體
傳輸實(shí)體的主體
-
PUT:傳輸文件
無驗(yàn)證機(jī)制,上傳文件凌停。
-
HEAD:獲取報(bào)文首部
不返回報(bào)文主體部分粱年。用于確認(rèn)URI的有效性以及資源更新的日期時(shí)間。
-
DELETE:刪除文件
無驗(yàn)證機(jī)制罚拟,刪除文件台诗。
-
OPTIONS:詢問支持的方法
查詢針對請求URI指定的資源支持的方法
-
TRACE:追蹤路徑
TRACE方法是讓W(xué)eb服務(wù)器端將之前的請求通信回環(huán)給客戶端的方法。
-
CONNECT:要求隧道協(xié)議連接代理
CONNECT方法要求在與代理服務(wù)器通信時(shí)建立隧道赐俗,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通信拉队。
HTTP狀態(tài)碼
類別 | 原因短語 | |
---|---|---|
1XX | Informational(信息性狀態(tài)碼 | 接收的請求正在處理 |
2XX | Success(成功狀態(tài)碼) | 請求正常處理完畢 |
3XX | Redirection(重定向狀態(tài)碼) | 需要進(jìn)行附加操作以完成請求 |
4XX | Client Error(客戶端錯(cuò)誤狀態(tài)碼) | 服務(wù)器無法處理請求 |
5XX | Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼) | 服務(wù)器處理請求錯(cuò)誤 |