HTTP協(xié)議
1.什么是HTTP協(xié)議
- 是一個基于請求和響應(yīng)的應(yīng)用層協(xié)議变汪, 底層協(xié)議是TCP冻河, 保證了數(shù)據(jù)的可靠傳輸。
- 通過url進行客戶端與服務(wù)器之間數(shù)據(jù)的交互。
- 是一種C/S(B/S)模式的協(xié)議(B/S是瀏覽器/服務(wù)端模式是一種特殊的C/S), C/S客戶端/服務(wù)端:客戶端發(fā)送請求荒椭, 服務(wù)器接收并響應(yīng)請求淆党。
- 是無狀態(tài)的協(xié)議(不記錄用戶的訪問狀態(tài)佛致, 可以通過cookie會話技術(shù)告訴服務(wù)器用戶狀態(tài))吼蚁。
2.HTTP協(xié)議的流程
- 創(chuàng)建一個TCP鏈接(目的是確保客戶端和服務(wù)器之間有一個可靠的數(shù)據(jù)通路)
三次握手:客戶端向服務(wù)器發(fā)起一個信號以確認服務(wù)器是否空閑(或是否同意創(chuàng)建鏈接)问欠, 服務(wù)器返回給客戶端是否哦可以創(chuàng)建連接的信號肝匆, 客戶端在發(fā)起一個信號進而創(chuàng)建鏈接。 - 客戶端向服務(wù)器發(fā)起HTTP請求顺献, 通過請求頭旗国, 請求體把相關(guān)數(shù)據(jù)傳遞給服務(wù)器。
常見的請求方式有:get注整、post能曾、 put、delete肿轨、put
請求頭:包含了本次請求的配置信息(數(shù)據(jù)格式寿冕, cookie, 用戶代理等)
請求體:即參數(shù)椒袍, 就是客戶端要提交給服務(wù)器的內(nèi)容
get請求和post請求的區(qū)別:
形式上:get請求的參數(shù)拼接在url后米娜驼唱, post不體現(xiàn)在url上
內(nèi)容上:get請求提交的數(shù)據(jù)量有限制(不同瀏覽器對url最大限制不同)post請求對數(shù)據(jù)提交量沒有限制。 - 服務(wù)器處理請求驹暑, 響應(yīng)請求
- 關(guān)閉鏈接:每一次http請求與響應(yīng)結(jié)束之后就會把本次創(chuàng)建的TCP鏈接關(guān)閉(短鏈接)
HTTP協(xié)議在1.1版本以后加入了長連接玫恳, HTTP請求結(jié)束以后, TCP鏈接不會立即關(guān)閉优俘, 經(jīng)過一段時間以后京办, 如果這個鏈接不再發(fā)生http請求, 再關(guān)掉