14HTTP

全文網(wǎng)址https://www.kancloud.cn/kancloud/http-api-guide/56269

疑問點(diǎn):

1.身份驗(yàn)證中的“HTTP 基本認(rèn)證,只有在部署了 SSL 證書的情況下才可以使用,否則用戶密碼會有暴露的風(fēng)險,當(dāng)然,最好不要使用”。
這里的SSL證書是啥東西?先mark,留著以后做網(wǎng)頁了解答。

2.CORS中,javascript,瀏覽器,服務(wù)器三個,第一個代表什么。

請求方法

rest:前端后端分離的一種方法。

可用于集合集合

GET http://localhost/hotels/(用于從服務(wù)器獲得某個資源的信息)

POST http://localhost/hotels/(用于創(chuàng)建新資源)

=================

可用于單個

GET http://localhost/hotels/656bcee2-28d2-404b-891b

GET http://localhost/hotels/1

PUT http://localhost/hotels/656bcee2-28d2-404b-891b(可用于整體的替換/創(chuàng)建)

PATCH http://localhost/hotels/656bcee2-28d2-404b-891b(局部更新,類似微信修改微信頭像)

DELETE http://localhost/hotels/656bcee2-28d2-404b-891b(刪除單個)

HTTP協(xié)議

HTTP1.1

2016年IETF廢除RFC2616,將1.1拆分成6個單獨(dú)協(xié)議:

  • 信息語法和路由選擇:低級信息語法分析和連接管理

  • 語意論和目錄:方法,狀態(tài)代碼和標(biāo)題

  • 條件請求:e.g., If-Modified-Since

  • 范圍請求:獲得局部目錄

  • 緩存:瀏覽器和中間緩存

  • 鑒定:HTTP鑒定框架

HTTP2.0

2.0 版本的設(shè)計(jì)目標(biāo)是盡量在使用層面上保持與 1.1 版本的兼容,所以,雖然數(shù)據(jù)交換的格式發(fā)生了變化,但語義基本全部被保留下來了。

URL

強(qiáng)烈建議 API 部署 SSL 證書,這樣接口傳遞的數(shù)據(jù)的安全性才能都得一定的保障。

空字段

接口遵循“輸入寬容,輸出嚴(yán)格”原則,輸出的數(shù)據(jù)結(jié)構(gòu)中空字段的值一律為 null

國際化

  • 語言標(biāo)簽

RFC規(guī)定的語言標(biāo)簽順序?yàn)椋?/p>

language(必填)-script-region-variant-extension-privateuse

疑問點(diǎn):這些script和region的簡稱都去哪里得到。

其中只有 language 部分是必須的,其他部分都是可選的;不過為了便于編寫程序,建議設(shè)計(jì)接口時約定語言標(biāo)簽的結(jié)構(gòu),比如統(tǒng)一使用 language-script-region 的形式( zh-Hans-CN, zh-Hant-HK 等等)。

  • 時區(qū)

  • 貨幣名稱

貨幣名稱可以參考 ISO 4217 中的約定,標(biāo)準(zhǔn)為貨幣名稱規(guī)定了三個字母的貨幣代碼。

前兩位是ISO 3166-1Wikipedia 中定義雙字母國家代碼,第三個字母通常是貨幣的首字母

狀態(tài)碼

  • 請求成功

  • 重定向

  • 條件請求

  • 客戶端錯誤

  • 服務(wù)端錯誤

錯誤處理

身份驗(yàn)證

?

超文本驅(qū)動和資源發(fā)現(xiàn)

分頁

請求某個資源集合時,可以通過指定 count 參數(shù)來指定每頁的資源數(shù)量,通過 page 參數(shù)指定頁碼,或根據(jù) last_cursor 參數(shù)指定上一頁最后一個資源的標(biāo)識符。

如果沒有傳遞 count 參數(shù)或者 count 參數(shù)的值為空,則使用默認(rèn)值 20 , count 參數(shù)的最大上限為 100 。

如何同時傳遞了 last_cursor 和 page 參數(shù),則使用 page 。

分頁的相關(guān)信息會包含在 Link Header 和 X-Total-Count 中。


HTTP/1.1 200 OK

X-Total-Count: 542

Link: <http://api.example.com/#{RESOURCE_URI}?last_cursor=&count=100>; rel="first",

 <http://api.example.com/#{RESOURCE_URI}?last_cursor=200&count=100>; rel="last"

 <http://api.example.com/#{RESOURCE_URI}?last_cursor=90&count=100>; rel="previous",

 <http://api.example.com/#{RESOURCE_URI}?last_cursor=120&count=100>; rel="next",

[

 ...

]

數(shù)據(jù)緩存

大部分接口應(yīng)該在響應(yīng)頭中攜帶 Last-Modified, ETag, Vary, Date 信息,客戶端可以在隨后請求這些資源的時候,在請求頭中使用 If-Modified-Since, If-None-Match 等請求頭來確認(rèn)資源是否經(jīng)過修改。

如果資源沒有進(jìn)行過修改,那么就可以響應(yīng) 304 Not Modified 并且不在響應(yīng)實(shí)體中返回任何內(nèi)容。

跨域 CORS cross origin resourse sharing

https://www.kancloud.cn/kancloud/http-api-guide/56271

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容