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