接口、HTTP请求、协议、响应(总结加深印象)
一、什么是接口
硬件接口比如:USB、耳機(jī)、水龍頭、電燈泡
軟件接口比如:api.github.com 連接了服務(wù)端和客戶端、
UI user interface 用戶接口、 用戶界面、
函數(shù)可以公開(kāi)訪問(wèn)的才能是接口 、
API 全稱(chēng):application programming interface,應(yīng)用程序可編程接口,應(yīng)用程序?qū)懘a,可以控制的接口
連接了兩個(gè)不同的事物、系統(tǒng),可以進(jìn)行數(shù)據(jù)傳輸 。
接口,兩個(gè)不同事物之間進(jìn)行適配的一種工具,規(guī)范和協(xié)議,
二、什么是網(wǎng)絡(luò)請(qǐng)求
1、客戶端 主要進(jìn)行前端操作,主動(dòng)請(qǐng)求 ??蛻舳耍–lient)或稱(chēng)為用戶端,是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序
2、服務(wù)端 后端主要被動(dòng)接受來(lái)自前端請(qǐng)求。服務(wù)器端是為客戶端服務(wù)的,服務(wù)的內(nèi)容諸如向客戶端提供資源,保存客戶端數(shù)據(jù)
三、HTTP請(qǐng)求、協(xié)議
1、HTTP是無(wú)狀態(tài)的
1)HTTP 每個(gè)請(qǐng)求都是獨(dú)立的
2)沒(méi)有記性
3)實(shí)現(xiàn)一個(gè)有狀態(tài)的,一個(gè)無(wú)狀態(tài)的,直接使用 requests 發(fā)起的請(qǐng)求就沒(méi)有狀態(tài) 即使你先調(diào)用登錄接口 再調(diào)用其他接口 那么后面這個(gè)接口也會(huì)提示你請(qǐng)登錄
2、HTTP協(xié)議分為三個(gè)部分
1)請(qǐng)求首航
1)URL 域名地址
2)請(qǐng)求方法 GET (GET獲取資源)沒(méi)有請(qǐng)求體,他的參數(shù)都放在URL里面,用?和&分隔
POST 、POST創(chuàng)建資源有請(qǐng)求體,有請(qǐng)求體意味著可以添加更多的數(shù)據(jù),可以放在URL中,也可以已鍵值對(duì)的方式傳參
PUT、DELETE..
為什么說(shuō)POST 比 GET 更安全,1、GET請(qǐng)求都放在URL中一眼就才看出來(lái)了 。
3)協(xié)議版本用的比較多的版本是:HTTP/1.1
請(qǐng)求網(wǎng)站是:域名地址
遠(yuǎn)程地址是:IP地址
2)請(qǐng)求參數(shù)
body參數(shù)方式:
Text:text/plain
Form:application/x-www-form-urlencoded
JSON:application/json
File:不確定
3)請(qǐng)求頭
user-agent 1、用戶代理 2、手機(jī)。瀏覽器,postman,jemter
content-type 請(qǐng)求格式
cookie
4)請(qǐng)求體 請(qǐng)求體有可能是空的
3、HTTP下層協(xié)議是由:tcp/ip
tcp:打包,使用存儲(chǔ)數(shù)據(jù),打包成一個(gè)一個(gè)很小的包
ip:確認(rèn)地址,通過(guò)ip進(jìn)行傳輸
四、響應(yīng)
1、響應(yīng)首航
1)協(xié)議版本號(hào)
2)狀態(tài)碼:內(nèi)部人員規(guī)定的一種專(zhuān)門(mén)的信息格式
3)狀態(tài)碼含義
1XX含義:lnformational信息,啥都不做,告訴client,信息收到了,后續(xù)會(huì)處理
2XX 含義:Successful 成功,啥都不做,告訴client,請(qǐng)求已正確處理
3XX含義:Redirection 重定向,重新請(qǐng)求返回的新地址-》才能獲取真正需要的數(shù)據(jù),告訴cilent,你需要的內(nèi)容,由于一些原因,比如地址已經(jīng)發(fā)生變化,然后返回該內(nèi)容的新地址
4XX 含義:Client Error客戶端的錯(cuò)誤,確保用正確的參數(shù)和信息,重新請(qǐng)求。告訴client,請(qǐng)求已正確處理
5XX含義:Server Error服務(wù)器端的錯(cuò)誤,(一般來(lái)說(shuō))都無(wú)需啥操作->往往需要服務(wù)器端該了bug后,重新發(fā)送請(qǐng)求,需要服務(wù)器Server端自己找到具體出了什么錯(cuò),往往是服務(wù)端的代碼bug導(dǎo)致了出錯(cuò)
4)常用的狀態(tài)碼及含義
2XX 200 OK 服務(wù)器成功返回用戶請(qǐng)求的數(shù)據(jù),往往為力簡(jiǎn)化處理,POST 創(chuàng)建成功后應(yīng)該返回 201 資源創(chuàng)建成功
201CREATED通過(guò)POST或PUT創(chuàng)建資源成功
204NO CONTENT資源修改成功,但是沒(méi)有返回內(nèi)容,常用于DELETE操作的返回
3XX 重定向,為力完成請(qǐng)求,必須進(jìn)一步執(zhí)行的動(dòng)作
301 永久重定向
302 臨時(shí)重定向
304上次訪問(wèn)服務(wù)器沒(méi)有進(jìn)行內(nèi)容的修改,就把緩存里面的內(nèi)容獲取出來(lái)了
4XX 401 UNAUTHORIZED 沒(méi)有權(quán)限訪問(wèn)該資源,典型情況:用戶沒(méi)有登錄,沒(méi)有獲取的對(duì)應(yīng)access token而直接訪問(wèn)某資源
403 FORBLDDEN 禁止訪問(wèn) 用戶雖然已經(jīng)登錄,但是去刪除需要更高的權(quán)限才有資格操作
404 NOT FOUND 找不到資源
405 METHOD NOT ALLOWED 方法不允許, 某個(gè)資源不允許發(fā)送post請(qǐng)求,但是你發(fā)起了post請(qǐng)求
5XX 500 INTERNAL SERVER ERROR 服務(wù)器內(nèi)部錯(cuò)誤,最常見(jiàn)的原因是:服務(wù)器掛了,比如傳遞參數(shù)中的有些參數(shù)是空的,導(dǎo)致后臺(tái)代碼無(wú)法解析,出現(xiàn)異常而崩潰
5)響應(yīng)頭
content-type 返回?cái)?shù)據(jù)的格式
set-coolie
6)響應(yīng)體
返回的數(shù)據(jù) ,json、text、html
五、域名和ip地址的區(qū)別
1、域名更好記憶
2、IP地址不好記憶
3、訪問(wèn)域名地址的時(shí)候會(huì)轉(zhuǎn)換成IP地址進(jìn)行傳輸
4、使用DNS解析,把域名轉(zhuǎn)換成IP地址
5、端口號(hào),為了區(qū)分不同的服務(wù)
六、cookie, session 和 token
1、cookie
英文翻譯:小餅干、小甜點(diǎn)
cookie是讓服務(wù)器記住你,記錄瀏覽器的信息
cookie 存儲(chǔ)在瀏覽器(服務(wù)端)
cookie 有效期默認(rèn)是關(guān)閉瀏覽器自動(dòng)清除,也可以自定義設(shè)置
2、session
在(服務(wù)器)記住用戶狀態(tài)的信息就叫做:session
如果使用session對(duì)象發(fā)起請(qǐng)求,那么你只要先發(fā)起登錄請(qǐng)求,在訪問(wèn)其他請(qǐng)求接口,都能正常訪問(wèn)
用來(lái) 服務(wù)器驗(yàn)證
服務(wù)器也存儲(chǔ)一份,用來(lái)驗(yàn)證發(fā)送過(guò)來(lái)的 cookie 是不是合法、符合規(guī)則的
3、token
保存在客戶端本地 local_srotage
是一種令牌,不管他什么身份
token 可以跨平臺(tái),手機(jī)、瀏覽器、電視、電腦 等等。
token 生成的口令是會(huì)變的,
關(guān)閉瀏覽器不會(huì)刪除 token 只會(huì)失效
不管是 cookie, session 和 token 都是服務(wù)器生成的
七、輸入U(xiǎn)RL后的過(guò)程
1、域名解析:DNS解析,把域名解析成服務(wù)器IP地址
2、發(fā)起TCP鏈接的三次握手(下面會(huì)寫(xiě))
3、建立TCP鏈接后發(fā)起HTTP請(qǐng)求
4、服務(wù)端響應(yīng)HTTP請(qǐng)求,返回響應(yīng)報(bào)文
5、瀏覽器頁(yè)面渲染
6、斷開(kāi) TCP 鏈接
八、三次握手
任何的請(qǐng)求都是從服務(wù)端開(kāi)始的
第一次握手:建立連接時(shí),客戶端向服務(wù)端發(fā)送請(qǐng)求報(bào)文(SYN)“我想建立連接”
第二次握手:服務(wù)器收到請(qǐng)求報(bào)文后,如同意連接,則向客戶端發(fā)送確認(rèn)報(bào)文(SYN / ACK)“同意建立連接”
第三次握手:客戶端收到服務(wù)器的確定后,再次向服務(wù)器發(fā)送確定報(bào)文,完成連接(ACK)
三次握手主要是為了防止已經(jīng)失效的請(qǐng)求報(bào)文文字段發(fā)送給服務(wù)器,浪費(fèi)資源
九、 四次揮手
第一次揮手:客戶端想分手,發(fā)送消息(FIN)給服務(wù)器
第二次揮手:服務(wù)器通知客戶端已經(jīng)接受的揮手請(qǐng)求,返回確認(rèn)信息(ACK),但還沒(méi)做好分手準(zhǔn)備
第三次揮手:服務(wù)器已經(jīng)做好分手準(zhǔn)備,通知客戶端(FIN)
第四次揮手:客戶端發(fā)送消息給服務(wù)器(ACK),確認(rèn)分手,服務(wù)器關(guān)閉連接
總結(jié)
以上是生活随笔為你收集整理的接口、HTTP请求、协议、响应(总结加深印象)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c# Message const
- 下一篇: python画图的工具及网站