HTTP基礎(chǔ)指南

(以下是http相關(guān)知識,在前端開發(fā)中知道這些基礎(chǔ)的知識也是必要的,本文是根據(jù)圖解http的小總結(jié),希望可以幫助大家更好的理解http)

一.了解web以及網(wǎng)絡(luò)基礎(chǔ)

1.相關(guān)概念:

DNS:位于應(yīng)用層,提供域名到IP地址之間的解析服務(wù)。


TCP協(xié)議: 位于傳輸層,提供可靠的字節(jié)流服務(wù)。(就是將大塊數(shù)據(jù)分割成以報文段為單位的數(shù)據(jù)包進(jìn)行管理)

IP協(xié)議: 位于網(wǎng)絡(luò)層,tcp/ip協(xié)議族中指網(wǎng)際協(xié)議,是一種協(xié)議名稱,作用把各種數(shù)據(jù)包傳遞給對方。(確保成功發(fā)送,滿足ip地址和mac地址)

IP地址:指明節(jié)點(diǎn)被分配到的地址;MAC地址:指網(wǎng)卡所屬的固定地址

ARP協(xié)議:解析地址協(xié)議,根據(jù)IP反查MAC

RFC:用來制定http協(xié)議技術(shù)標(biāo)準(zhǔn)文檔

TCP/IP協(xié)議族層次分為以下4層

應(yīng)用層:決定了向用戶提供應(yīng)用服務(wù)時通信的活動。(eg:文件傳輸協(xié)議FTP,域名系統(tǒng)DNS,http協(xié)議)

傳輸層:為上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接的兩臺計算機(jī)之間的數(shù)據(jù)傳輸。(性質(zhì)不同的協(xié)議,傳輸控制協(xié)議TCP, 用戶數(shù)據(jù)報協(xié)議UDP)

網(wǎng)絡(luò)層:處理網(wǎng)絡(luò)流動的數(shù)據(jù)包。(數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)模?/p>

鏈路層: 連接網(wǎng)絡(luò)的硬件部分。

三次握手:發(fā)送端發(fā)送帶SYN標(biāo)志數(shù)據(jù)包給對方—->接收端接受回傳帶SYN/ACK標(biāo)志數(shù)據(jù)包確認(rèn)信息–→發(fā)送端回傳一個帶ACK標(biāo)志的數(shù)據(jù)包。

2.相關(guān)傳輸過程:

3.URI與URL

URI(Uniform Resource Identifier):統(tǒng)一資源標(biāo)識符。

URL(Uniform Resource Locator):統(tǒng)一資源定位符。

URI用字符串標(biāo)識某一互聯(lián)網(wǎng)資源,而URL表示資源的地點(diǎn)(互聯(lián)網(wǎng)上所處的位置)。URL是URI的子集。

二、簡單的HTTP協(xié)議

1.HTTP是客戶端和服務(wù)端之間的通信。(是不保存狀態(tài)的協(xié)議)

客戶端:請求訪問文本或者圖像資源的一方

服務(wù)端:提供資源響應(yīng)的一方.

2.請求報文構(gòu)成:包括請求方法,URI,協(xié)議版本,可選請求首部字段,內(nèi)容,實(shí)體構(gòu)成的。

常用請求方法:

(1)GET:獲取資源,請求訪問已被URI識別的資源。

(2)POST:傳輸實(shí)體的主體,常用于表單。

(3)PUT:傳輸文件,要求請求報文主體包含文件內(nèi)容(有安全性問題,通常不用)

(4)HEAD:獲得報文首部,(不返回主體部分,用于確認(rèn)URI有效性以及資源更新的日期時間等)

(5)DELETE:刪除文件

(6)OPTIONS: 客戶端帶著詢問支持的方法。

(7)CONNECT:在于代理服務(wù)器通信時建立隧道,實(shí)現(xiàn)用隧道協(xié)議通信

3.因?yàn)閔ttp是不保存協(xié)議,所以用到Cookie狀態(tài)管理。

第一次客戶端沒帶cookie到服務(wù)端,服務(wù)端響應(yīng)返回添加cookie,第二次以后請求服務(wù)端就帶有cookie,最后得到響應(yīng)。

請求報文——響應(yīng)報文——–請求報文

三、返回結(jié)果的HTTP狀態(tài)碼

2XX:成功

200:客戶端發(fā)送的請求在服務(wù)器端正常處理了

204:請求成功,但沒有資源返回

206: 客戶端進(jìn)行范圍請求,服務(wù)器端執(zhí)行了Get請求

3XX: 重定向

301: 永久重定向,請求資源被重新分配了新的URI,以后使用的是最新的URI

302,307:臨時性重定向,請求資源被分配新的URI,只本次使用新的

303:請求的資源存在著另一個URI,使用get定向獲取資源

301,302,303響應(yīng)狀態(tài)碼返回時,幾乎所有的瀏覽器都會把post–>get,并刪除報文的主體,之后自動發(fā)送求

304: 客戶端發(fā)送附帶條件的請求,服務(wù)端允許請求訪問資源,但未滿足條件的情況

4XX:客戶端錯誤

400: 請求報文中存在語法錯誤

401: 發(fā)送請求需要http認(rèn)證的認(rèn)證信息,(若之前進(jìn)行過一次請求,就表示用戶認(rèn)證失?。?/p>

403: 對請求資源訪問被服務(wù)器拒絕

404:服務(wù)器上無法找到請求資源

5XX: 服務(wù)器錯誤

500:服務(wù)器在執(zhí)行請求時發(fā)生故障(也可能web應(yīng)用存在Bug)

503: 服務(wù)器暫時處于超負(fù)載活停機(jī)維護(hù),無法處理請求

最后注意: 狀態(tài)碼和狀況不一致,5開頭不一定就是服務(wù)器錯了,客戶端的bug也可能造成5,web的內(nèi)部出錯,狀態(tài)碼依舊可以返回200

四、HTTP報文內(nèi)的http信息

http通信過程包括 從客戶端→服務(wù)端 以及 服務(wù)端-→客戶端。

請求行和響應(yīng)報文的結(jié)構(gòu)

請求行: 包括請求方法,請求URI和HTTP版本 (get /HTTP/1.1)

狀態(tài)行:包括表明相應(yīng)結(jié)果的狀態(tài)碼,原因短語和HTTP版本 (HTTP/1.1 200OK)

首部字段: 表示請求的各種條件和屬性的各類首部

分為: 通用首部,請求首部,響應(yīng)首部,實(shí)體首部。

其他: HTTP的RFC里未定義的首部(cookie等)

五、HTTP存在的問題

1、可能被竊聽

HTTP 本身不具備加密的功能,HTTP 報文使用明文方式發(fā)送

由于互聯(lián)網(wǎng)是由聯(lián)通世界各個地方的網(wǎng)絡(luò)設(shè)施組成,所有發(fā)送和接收經(jīng)過某些設(shè)備的數(shù)據(jù)都可能被截獲或窺視。(例如大家都熟悉的抓包工具:Wireshark)

2、 認(rèn)證問題

無法確認(rèn)你發(fā)送到的服務(wù)器就是真正的目標(biāo)服務(wù)器(可能服務(wù)器是偽裝的)

無法確定返回的客戶端是否是按照真實(shí)意圖接收的客戶端(可能是偽裝的客戶端)

無法確定正在通信的對方是否具備訪問權(quán)限,Web 服務(wù)器上某些重要的信息,只想發(fā)給特定用戶即使是無意義的請求也會照單全收。無法阻止海量請求下的 DoS 攻擊(Denial of Service,拒絕服務(wù)攻擊)。

3、 可能被篡改

請求或響應(yīng)在傳輸途中,遭攻擊者攔截并篡改內(nèi)容的攻擊被稱為中間人攻擊(Man-in-the-Middle attack,MITM)。

六:HTTPS介紹

1、 什么是HTTPS

超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種通過計算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議。HTTPS經(jīng)由HTTP進(jìn)行通信,但利用SSL/TLS來加密數(shù)據(jù)包。HTTPS開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性。

2、 HTTPS怎么解決上述問題

HTTPS是在通信接口部分用 TLS(Transport Layer Security 傳輸層安全性協(xié)議),TLS協(xié)議采用主從式架構(gòu)模型,用于在兩個應(yīng)用程序間通過網(wǎng)絡(luò)創(chuàng)建起安全的連接,防止在交換數(shù)據(jù)時受到竊聽及篡改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容