HTTP協(xié)議即為HTTP/IP協(xié)議送浊,其中HTTP為網(wǎng)絡(luò)七層中的應(yīng)用層,IP為網(wǎng)絡(luò)層丘跌。
組成
無論請求還是響應(yīng)袭景,都會有首行
、HTTP頭
和正文信息
闭树,而HTTP頭發(fā)送的就是內(nèi)容類型耸棒、日期、HTTP狀態(tài)碼等报辱。正文就是表單數(shù)據(jù)与殃。
請求首行基本格式為方法 路徑 版本
,舉例:GET /simple.html HTTP/1.1
。
響應(yīng)首行基本格式為版本號 狀態(tài)碼 狀態(tài)文本
幅疼,舉例:HTTP/1.1 200 OK
米奸。
一個HTTP請求體應(yīng)該包括:
1、請求方式:(POST/GET);
2衣屏、path(請求的路徑)躏升;
3、search(請求的參數(shù)狼忱,?后面的內(nèi)容 )膨疏;
4、Host(主機(jī)名+端口)钻弄;
5佃却、protocol(請求協(xié)議,一般為HTTP/1.1)窘俺;
【(僅POST才有的部分)
6饲帅、Content-Type(請求內(nèi)容加密方式):application/x-www-form-urlencoded;
7瘤泪、Content-Length(請求內(nèi)容長度):如id=2的長度為4】
在一個請求中灶泵,可以既包括請求參數(shù),也包括請求內(nèi)容对途,如:
POST/index.jsp?id=3 HTTP/1.1 Host:taobao.com Content-Type:application/x-www-form-urlenconded Content-Length:9
name=bear
特點(diǎn)
- 無狀態(tài):對傳輸?shù)臄?shù)據(jù)不具備任何記憶存儲功能赦邻;
- 傳輸完畢,即斷開連接实檀。http 1.1及以后都保持連接惶洲。
HTTPS=HTTP+SSL信任證書。
問答部分
-
提問:一用戶訪問www.baidu.com膳犹,會經(jīng)過哪些流程恬吕?
答:1、會先去瀏覽器中搜尋自身DNS緩存须床,找到后看是否過時效铐料。未過時效就用;
過了時效或未找到就重新繼續(xù)下面的請求豺旬。查看chrome的DNS緩存:chrome://net-internals#DNS
2余赢、瀏覽器搜尋操作系統(tǒng)的緩存,同1哈垢;
3、讀取本地host文件扛拨;
4耘分、瀏覽器發(fā)起一個DNS的一個系統(tǒng)調(diào)用;
向本地主控域名服務(wù)器(寬帶運(yùn)營商提供)發(fā)起一個域名解析請求:
? 寬帶運(yùn)營商服務(wù)器查看本身緩存;
? 運(yùn)營商發(fā)起一個迭代DNS解析的請求求泰;
5央渣、瀏覽器獲得域名對應(yīng)的IP后忘嫉,發(fā)起HTTP“三次握手”霹崎,TCP/IP連接請求,經(jīng)過TCP/IP協(xié)議站脉顿,防火墻等卜朗;
6拔第、TCP/IP連接建立后,瀏覽器開始向服務(wù)器發(fā)送HTTP請求场钉;
7蚊俺、服務(wù)器接收請求,根據(jù)路徑參數(shù)等逛万,經(jīng)過后臺處理泳猬,返回處理結(jié)果(如HTML代碼);
8宇植、瀏覽器拿到頁面代碼后得封,其中的靜態(tài)資源(如:css,js,圖片等)會經(jīng)歷上7步;
9指郁、瀏覽器渲染結(jié)果忙上。
運(yùn)營商迭代DNS解析的請求:
1)向頂級服務(wù)器發(fā)起一個請求,然后頂級服務(wù)器發(fā)現(xiàn)這是一個com域的服務(wù)器請求坡氯,向其返回com域的頂級域的IP地址晨横;
2)向com域的IP地址發(fā)起請求,然后返回baidu.com域的IP地址箫柳;
3)向baidu.com域的IP地址(如萬網(wǎng)手形、新網(wǎng)等)發(fā)起請求,拿到baidu.com的IP地址悯恍。
4)運(yùn)營商服務(wù)器把結(jié)果(IP地址)返回給內(nèi)核并緩存起來(有一定時效)库糠。
5)操作系統(tǒng)內(nèi)核把結(jié)果返回給瀏覽器。
參考:https://www.imooc.com/article/1851涮毫。
XXX(imooc某一前端課程瞬欧,后期補(bǔ)充)。