導(dǎo)讀
- 移動(dòng)開發(fā)知識(shí)體系總章(Java基礎(chǔ)、Android、Flutter)
- 什么是HTTP協(xié)議?
- HTTP請(qǐng)求所經(jīng)歷的步驟(高層協(xié)議)
- TCP/IP 建立鏈接的三次握手(底層協(xié)議)
- 請(qǐng)求報(bào)文/響應(yīng)報(bào)文格式
- 有哪些請(qǐng)求方式
- get和post的區(qū)別
- http和https的區(qū)別
- 什么是HTTP無(wú)狀態(tài)協(xié)議?
- cookies機(jī)制和session機(jī)制的區(qū)別
- HTTP狀態(tài)碼
1.什么是HTTP協(xié)議?
- 客戶端和服務(wù)器端之間數(shù)據(jù)傳輸?shù)母袷揭?guī)范,簡(jiǎn)稱為超文本傳輸協(xié)議。
2.HTTP請(qǐng)求所經(jīng)歷的步驟(高層協(xié)議)
- 建立 TCP/IP 鏈接
- Web瀏覽器端發(fā)送(必須建立連接后)
2.1. 發(fā)送請(qǐng)求行
2.3. 發(fā)送請(qǐng)求頭
2.4. 發(fā)送空白行 - Web服務(wù)器端響應(yīng)
3.1. 發(fā)送應(yīng)答行
3.2. 發(fā)送應(yīng)答頭
3.3. 發(fā)送響應(yīng)數(shù)據(jù)
3.4. 發(fā)送空白行 - 關(guān)閉TCP連接(可以設(shè)置保持打開狀態(tài))
- Web瀏覽器端接收到響應(yīng)數(shù)據(jù)
3.TCP/IP 建立鏈接的三次握手(底層協(xié)議)
- 即客戶端想服務(wù)器發(fā)送一個(gè)syn包進(jìn)入未連接隊(duì)列
- 服務(wù)器讀取未連接隊(duì)列進(jìn)行回復(fù)syn包(進(jìn)入SYN_RECV狀態(tài))
- 客戶端收到服務(wù)器發(fā)送的syn包后再次向服務(wù)器發(fā)送確認(rèn)syn包(進(jìn)入ESTABLISHED狀態(tài))
可以參考對(duì)講機(jī)的使用方式:
1、長(zhǎng)江長(zhǎng)江,我是黃河,收到請(qǐng)回答。
2、黃河黃河,我是長(zhǎng)江,收到請(qǐng)回答。
3、我是黃河,(巴拉巴拉)。
4.請(qǐng)求報(bào)文/響應(yīng)報(bào)文格式
TIM截圖20190918114545.png
5.有哪些請(qǐng)求方式
- get
- post
- put
- delete
- head
-options
6.get和post的區(qū)別
簡(jiǎn)單來說:
- GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包
- POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包
嚴(yán)格來說:
- GET請(qǐng)求,客戶端會(huì)把header和data一并發(fā)送出去,服務(wù)器進(jìn)行響應(yīng)
- POST請(qǐng)求,客戶端先發(fā)送header,服務(wù)器響應(yīng)100 continue,客戶端再發(fā)送data
7.http和https的區(qū)別
HTTPS = HTTP + SSL
- https有ca證書,http一般沒有
- http是超文本傳輸協(xié)議,信息是明文傳輸。https則是具有安全性的ssl加密傳輸協(xié)議
- http默認(rèn)80端口,https默認(rèn)443端口。
8.什么是HTTP無(wú)狀態(tài)協(xié)議?
- 無(wú)狀態(tài)就是沒有記憶能力,也就是請(qǐng)求報(bào)文中沒有使用Cookie或Session
- 也就是說使用Cookie或Session就是無(wú)狀態(tài)協(xié)議解決辦法。
9.cookies機(jī)制和session機(jī)制的區(qū)別
- cookies數(shù)據(jù)保存在客戶端,session數(shù)據(jù)保存在服務(wù)器端
- cookies可以減輕服務(wù)器壓力,但是不安全,容易進(jìn)行cookies欺騙
- session較安全,但占用服務(wù)器資源
10. HTTP狀態(tài)碼
- 200 請(qǐng)求已成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。
- 201 請(qǐng)求已經(jīng)被實(shí)現(xiàn),而且有一個(gè)新的資源已經(jīng)依據(jù)請(qǐng)求的需要而建立,且其 URI 已經(jīng)隨Location 頭信息返回
- 202 服務(wù)器已接受請(qǐng)求,但尚未處理
- 301 (永久移動(dòng)) 請(qǐng)求的網(wǎng)頁(yè)已永久移動(dòng)到新位置。 服務(wù)器返回此響應(yīng)(對(duì) GET 或 HEAD 請(qǐng)求的響應(yīng))時(shí),會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到新位置。
- 302 (臨時(shí)移動(dòng)) 服務(wù)器目前從不同位置的網(wǎng)頁(yè)響應(yīng)請(qǐng)求,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求。
- 303 (查看其他位置) 請(qǐng)求者應(yīng)當(dāng)對(duì)不同的位置使用單獨(dú)的 GET 請(qǐng)求來檢索響應(yīng)時(shí),服務(wù)器返回此代碼。
- 304 (未修改) 自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁(yè)未修改過。 服務(wù)器返回此響應(yīng)時(shí),不會(huì)返回網(wǎng)頁(yè)內(nèi)容。
- 305 (使用代理) 請(qǐng)求者只能使用代理訪問請(qǐng)求的網(wǎng)頁(yè)。 如果服務(wù)器返回此響應(yīng),還表示請(qǐng)求者應(yīng)使用代理。
- 307 (臨時(shí)重定向) 服務(wù)器目前從不同位置的網(wǎng)頁(yè)響應(yīng)請(qǐng)求,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求。
- 401 當(dāng)前請(qǐng)求需要用戶驗(yàn)證。如果當(dāng)前請(qǐng)求已經(jīng)包含了 Authorization 證書,那么401響應(yīng)代表著服務(wù)器驗(yàn)證已經(jīng)拒絕了那些證書
- 403 服務(wù)器已經(jīng)理解請(qǐng)求,但是拒絕執(zhí)行它。與401響應(yīng)不同的是,身份驗(yàn)證并不能提供任何幫助,而且這個(gè)請(qǐng)求也不應(yīng)該被重復(fù)提交
- 404 請(qǐng)求失敗,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)
- 500 服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況,導(dǎo)致了它無(wú)法完成對(duì)請(qǐng)求的處理。一般來說,這個(gè)問題都會(huì)在服務(wù)器的程序碼出錯(cuò)時(shí)出現(xiàn)。
- 501 服務(wù)器不支持當(dāng)前請(qǐng)求所需要的某個(gè)功能。當(dāng)服務(wù)器無(wú)法識(shí)別請(qǐng)求的方法,并且無(wú)法支持其對(duì)任何資源的請(qǐng)求。
- 502 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無(wú)效的響應(yīng)。
- 503 由于臨時(shí)的服務(wù)器維護(hù)或者過載,服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求。這個(gè)狀況是臨時(shí)的,并且將在一段時(shí)間以后恢復(fù)。