一槐壳、HTTP協(xié)議:
概念:
?(1)HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)卵慰。
?(2)它是服務(wù)器和客戶端進(jìn)行數(shù)據(jù)交互的一種形式-
組成:
?1.請(qǐng)求報(bào)文包括三部分:
??(1)請(qǐng)求行:包含請(qǐng)求方法,URI,HTTP版本協(xié)議
??(2)請(qǐng)求首部字段
??(3)求內(nèi)容實(shí)體?2.響應(yīng)報(bào)文包含三部分:
??(1).狀態(tài)行:包含HTTP版本,狀態(tài)碼,狀態(tài)碼原因短語
??(2).響應(yīng)首部字段
??(3).響應(yīng)內(nèi)容實(shí)體 請(qǐng)求方式:
1.GET:用于請(qǐng)求訪問已經(jīng)被URI(統(tǒng)一資源標(biāo)識(shí)符)識(shí)別的資源,可以通過URL傳參給服務(wù)器
2.POST:用于傳輸信息給服務(wù)器,主要功能與GET方法類似,但一般推薦使用POST方式
3.PUT:傳輸文件,報(bào)文主體中包含文件內(nèi)容,保存到對(duì)應(yīng)URI位置
4.HEAD:獲得報(bào)文首部,與GET方法類似,只是不返回報(bào)文主體,一般用于驗(yàn)證URI是否有效
5.DELETE:刪除文件,與PUT方法相反,刪除對(duì)應(yīng)URI位置的文件
6.OPTIONS:查詢響應(yīng)URI支持的HTTP方法-
原理機(jī)制:
流程步驟
1.域名解析-->
2.發(fā)起TCP三次握手-->
3.發(fā)起HTTP請(qǐng)求-->
4.服務(wù)器響應(yīng)HTTP請(qǐng)求-->
5.瀏覽器解析HTML代碼并請(qǐng)求HTML代碼中資源-->
6.瀏覽器對(duì)頁面進(jìn)行渲染呈現(xiàn)給用戶-->
7.服務(wù)器關(guān)閉tcp連接(TCP四次揮手)域名解析過程
1.搜索瀏覽器自身的DNS緩存
2.搜索操作系統(tǒng)自身的DNS緩存
3.讀取hosts文件
4.向本地配置的首選DNS服務(wù)器發(fā)起域名解析請(qǐng)求
5.查找NetBIOS name Cache
6.查詢WINS服務(wù)器
7.進(jìn)行廣播查找
8.讀取LMHOSTS文件協(xié)議首部字段:
1.通用首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文都會(huì)使用的首部字段)
?Date:創(chuàng)建報(bào)文時(shí)間
?Connection:連接的管理
?Cache-Control:緩存的控制
?Transfer-Encoding:報(bào)文主體的傳輸編碼方式
2.請(qǐng)求首部字段(請(qǐng)求報(bào)文會(huì)使用的首部字段)
?Host:請(qǐng)求資源所在服務(wù)器
?Accept:可處理的媒體類型
?Accept-Charset:可接收的字符集
?Accept-Encoding:可接受的內(nèi)容編碼
?Accept-Language:可接受的自然語言
3.響應(yīng)首部字段(響應(yīng)報(bào)文會(huì)使用的首部字段)
?Accept-Ranges:可接受的字節(jié)范圍
?Location:令客戶端重新定向到的URI
?Server:HTTP服務(wù)器的安裝信息
4.實(shí)體首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文的的實(shí)體部分使用的首部字段)
?Allow:資源可支持的HTTP方法
?Content-Type:實(shí)體主類的類型
?Content-Encoding:實(shí)體主體適用的編碼方式
?Content-Language:實(shí)體主體的自然語言
?Content-Length:實(shí)體主體的的字節(jié)數(shù)
?Content-Range:實(shí)體主體的位置范圍祭示,一般用于發(fā)出部分請(qǐng)求時(shí)使用
- 服務(wù)器響應(yīng)狀態(tài)碼
1. 1XX 臨時(shí)響應(yīng)
?指示信息,表示請(qǐng)求已接收切距,需要請(qǐng)求者繼續(xù)執(zhí)行操作
?100 :請(qǐng)求者應(yīng)該繼續(xù)提出請(qǐng)求肯尺,即服務(wù)器已收到請(qǐng)求的一部分,正在等待剩余部分舅锄。
??請(qǐng)求者如果請(qǐng)求已經(jīng)完成鞭达,則忽略該反應(yīng)。
??請(qǐng)求者若干請(qǐng)求為完成皇忿,繼續(xù)發(fā)送剩余要求畴蹭。
??notes:服務(wù)器必須在要求完成后向請(qǐng)求者發(fā)送一個(gè)最終響應(yīng)。
?101:接受到了請(qǐng)求者切換協(xié)議的要求鳍烁,服務(wù)器已收到要求叨襟,并準(zhǔn)備切換到Upgrade消息頭中對(duì)應(yīng)的協(xié)議
2. 2XX 成功
?請(qǐng)求已被成功接收、理解老翘、接受芹啥。
?200 請(qǐng)求成功
?根據(jù)請(qǐng)求方法的不同而分為下面幾類:
??HEAD 實(shí)體頭已作為響應(yīng)頭傳回請(qǐng)求者
??GET 資源已被提取,并作為響應(yīng)體傳回請(qǐng)求者
??POST 經(jīng)過服務(wù)器處理請(qǐng)求者傳來的數(shù)據(jù)铺峭,把對(duì)應(yīng)的資源傳回請(qǐng)求者
??TRACE 服務(wù)器收到請(qǐng)求消息并作為響應(yīng)體傳回請(qǐng)求者
??notes:DELETE墓怀、OPTIONS和PUT絕對(duì)不會(huì)傳回200
?201 已創(chuàng)建
??請(qǐng)求成功,并且服務(wù)器已創(chuàng)建請(qǐng)求者要求的對(duì)應(yīng)新資源卫键。
??notes:這一般是PUT請(qǐng)求會(huì)得到的相應(yīng)碼
?202 已接收
??服務(wù)器已接收到請(qǐng)求傀履,但尚未處理,即可以執(zhí)行,也可能拒絕
??notes:適合在異步操作的場(chǎng)景下
?203 未授權(quán)信息
??服務(wù)器已處理請(qǐng)求钓账,但是實(shí)體頭部元信息不屬于原服務(wù)器上有效的集合碴犬。
?204無內(nèi)容
??服務(wù)器已處理請(qǐng)求,但是響應(yīng)體內(nèi)無內(nèi)容梆暮,只有響應(yīng)頭服协。
?205重置內(nèi)容
??告訴用戶代理去重置 發(fā)送該請(qǐng)求的窗口 的文檔視圖
?206 部分內(nèi)容
??服務(wù)器處理了部分請(qǐng)求內(nèi)容
??notes:請(qǐng)求者通過使用range頭字段 進(jìn)行文件分段下載時(shí)
3. 3XX 重定向
想要實(shí)現(xiàn)請(qǐng)求必須進(jìn)行進(jìn)一步的操作
?300 多種選擇
??該請(qǐng)求能夠有多種響應(yīng),需要用戶或者用戶代理來選擇其中一個(gè)
?301 永久移動(dòng)
??請(qǐng)求的URI資源路徑已發(fā)生改變啦粹,若可能偿荷,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動(dòng)把請(qǐng)求的地址修改為從服務(wù)器反饋回來的地址。除非額外指定唠椭,否則這個(gè)響應(yīng)也是可緩存的跳纳。
?302 臨時(shí)移動(dòng)
??請(qǐng)求的URI資源路徑臨時(shí)發(fā)生改變,而且有繼續(xù)改變的可能贪嫂。但是請(qǐng)求者在今后的訪問中寺庄,還是要繼續(xù)使用該URI。只有在Cache-Control或Expires中進(jìn)行了指定的情況下力崇,這個(gè)響應(yīng)才是可緩存的斗塘。
??notes:可以用來做臨時(shí)跳轉(zhuǎn)
4. 4XX 客戶端錯(cuò)誤
?請(qǐng)求有語法錯(cuò)誤或者是請(qǐng)求無法實(shí)現(xiàn)
?400 錯(cuò)誤請(qǐng)求
??請(qǐng)求中存在語法錯(cuò)誤,服務(wù)器無法讀取
?401 未授權(quán)
??需要經(jīng)過身份驗(yàn)證后才能夠獲得請(qǐng)求內(nèi)容
??notes:必須和WWW-Authenticate報(bào)頭域配合使
用
?403 禁止訪問
??服務(wù)器收到請(qǐng)求餐曹,但是拒絕訪問
?404 未找到
??服務(wù)器找不到請(qǐng)求的資源
5. 5XX 服務(wù)器端錯(cuò)誤
?服務(wù)器不能實(shí)現(xiàn)合法的請(qǐng)求
?500 內(nèi)部服務(wù)器錯(cuò)誤
??發(fā)生不可以預(yù)知的錯(cuò)誤
?501 未實(shí)現(xiàn)
??服務(wù)器不支持請(qǐng)求的功能
?502 網(wǎng)關(guān)錯(cuò)誤
??服務(wù)器作為網(wǎng)關(guān)逛拱,但是從上游服務(wù)器無法收到有效響應(yīng)
?503 服務(wù)器無效
??服務(wù)器當(dāng)前不能處理請(qǐng)求者的請(qǐng)求,一段時(shí)間后可恢復(fù)正常台猴,屬于臨時(shí)問題
特點(diǎn):
.簡(jiǎn)單快速
.靈活
.無連接
.無狀態(tài)
解決辦法COOKIE
.支持C/S(Client/Server)模式HTTP協(xié)議缺點(diǎn):
1)通信使用明文(不加密)朽合,內(nèi)容可能會(huì)被竊聽
2)不驗(yàn)證通信方的身份,因此有可能遭遇偽裝
3)無法證明報(bào)文的完整性饱狂,所以有可能已遭篡改
二曹步、HTTPS協(xié)議:
1.概念:
就是HTTP+加密處理(一般是SSL安全通信線路)+認(rèn)證+完整性保護(hù)