成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

HTTP API 設計入坑指南(一)

jay_tian / 2733人閱讀

一、請求方式 1. 請求方式有get/post/put/delete/options 2. get和post的區(qū)別:

get通常用作獲取數(shù)據(jù),post通常用作提交數(shù)據(jù)

get參數(shù)有長度限制,受限于URL長度(http協(xié)議對url長度不限制,而是服務器和瀏覽器的配置參數(shù)限制),post無限制

get冪等,post不冪等(冪等:多次請求,結果一樣)

header里有個參數(shù)content-length,記錄傳輸body長度,服務器根據(jù)此值判斷文件大小,如果實際大小 二、響應狀態(tài)碼

參考文獻:http://tool.oschina.net/commo...

2**:以2開頭都表示成功
   200  OK    成功
   201  Created   新建/修改數(shù)據(jù)成功
   202  Accepted  請求已進入后臺排隊,(異步任務)但任務并不代表已經(jīng)執(zhí)行成功
   204  No content  刪除成功
   206  Partial content  斷點續(xù)傳,eg:迅雷100M文件下載,網(wǎng)速10M/s,分段下載1-10,11-20…,已下到15節(jié)點,突遇斷電,下次下載從11開始  
3**:重定向問題 4**:客戶端
   400  Invalid request  請求錯誤
   401  Unauthorized     沒有權限
   403  Forbidden         禁止
   404  Not found          不存在
   405  Method not allowed 不支持請求方法
   422  Unprocesable entity  驗證錯誤  
5**:服務器
   500 Internal server error  服務器錯誤

三、跨域 1. JSONP 跨域讀取數(shù)據(jù)
參考文獻:
ajax受同源策略(協(xié)議、端口、域名都相同)影響,不允許跨域請求,但script的src屬性可以訪問跨域的JS腳本,jsonp使其不返回json數(shù)據(jù),而返回“調用某函數(shù)的js代碼”,從而實現(xiàn)跨域。

eg: 在www.ren.com中

在test.js中 getData({"name”:”小小聰”}) 。 getData是www.ren.com中的一個函數(shù)

jsonp不支持post請求,因為script不支持post JQuery提供方便使用jsonp的方式

在ren.php中寫

$data = array("name" => "小小聰");
$callback = $_GET["callback"];
echo $callback."(".json_encode($data).")";
return;
2. CROS 跨域 支持get,post等所有類型的請求

JSONP主要被老的瀏覽器支持,而絕大多數(shù)現(xiàn)代瀏覽器都已經(jīng)支持了CORS

CROS主要通過Header支持的

     Access-Control-Allow-Origin:限制域名(不建議設為*,防止XSS攻擊)  
     Access-Control-Expose-Headers :允許訪問的服務器白名單  

四、響應之JSON數(shù)據(jù)類型
不同語言數(shù)據(jù)類型解析規(guī)則不一致,導致不同語言之間部分數(shù)據(jù)類型無法解析
eg:
    部分語言沒有null類型,GO、Lua使用nil表示
    部分語言布爾值沒有0,1概念
    數(shù)組類型大小不一致、類型最大值不一樣

PHP注意:
    數(shù)組轉json對象為{“key”:“value”},如果數(shù)組為空[],轉json則為[]。
    對于API,字段類型應當是固定的,數(shù)組和對象的轉換,某些語言無法處理,object為空時,使用 new stdClass() 空對象代替,而非空數(shù)組[ ]
Python注意:
    打包json時,對unicode字符轉換后會在字符串前添加 u 前綴
    注意生成json任何情況下都不改出現(xiàn)單引號,必須是雙引號

一切皆字符串

授權、安全部分在下篇文章

記得關注我呦

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/30746.html

相關文章

  • HTTP API 設計入坑指南(二)

    摘要:而只需要服務端生成,客戶端保存,每次請求在頭部中使用攜帶,服務端認證解析就可。如果緩存不清理,驗證碼就會一直有效,不安全。 一、授權 參考文獻:https://blog.risingstack.com/... 1. Basic authentication (最簡單,適用于沒有第三方的請求接口中) 客戶端發(fā)送authorization,內容為 Basic Base64編碼(usern...

    JayChen 評論0 收藏0
  • HTTP API 設計入坑指南(二)

    摘要:而只需要服務端生成,客戶端保存,每次請求在頭部中使用攜帶,服務端認證解析就可。如果緩存不清理,驗證碼就會一直有效,不安全。 一、授權 參考文獻:https://blog.risingstack.com/... 1. Basic authentication (最簡單,適用于沒有第三方的請求接口中) 客戶端發(fā)送authorization,內容為 Basic Base64編碼(usern...

    pingan8787 評論0 收藏0
  • Java入坑指南

    摘要:入坑指南是滴,下面是一個最低的入坑還應該有種設計模式應該掌握的。堆棧以幀為單位保存線程的狀態(tài),對堆棧的操作為壓棧和出棧執(zhí)行字節(jié)碼以后,將會產(chǎn)生程序計數(shù)器和棧,程序計數(shù)器存放將要執(zhí)行下一條指令的偏移量。 Java入坑指南是滴,下面是一個最低的入坑 還應該有23種設計模式應該掌握的。╮(╯▽╰)╭注意,第一個j是大寫。 Java的特點跨平臺,風格接近C++最重要的api文檔 https:/...

    Rindia 評論0 收藏0
  • Browserify簡易入坑指南

    摘要:簡要說明長處在于使用模塊規(guī)范,而不是使用的模塊規(guī)范,以及使用的模塊規(guī)范。簡單使用關于命令行工具使用,請參照官方文檔。相同模塊重復依賴模塊重復依賴很容易理解,模塊實現(xiàn)時可能分割為多個子文件實現(xiàn),每個子文件內部可能會引用同一個模塊,如。 簡介 browerify: http://browserify.org/index.html browserify可以看做瀏覽器端的又一個模塊...

    vpants 評論0 收藏0
  • FIBOS入坑指南——本地開發(fā)環(huán)境搭建

    摘要:如果出錯,需要查看一下本地節(jié)點是否正在運行,在瀏覽器輸入后記完至此,本地的開發(fā)環(huán)境基本搭建完成,如果你想試試在本地環(huán)境編寫部署調用智能合約,可以參考官方開發(fā)文檔,當然,后續(xù)有時間,我也會把在智能合約開發(fā)過程中踩到的坑寫寫。 FIBOS是什么? FIBOS 是一個結合 FIBJS 以及 EOS 的 JavaScript 的運行平臺,它使得 EOS 提供可編程性,并允許使用 JavaSc...

    goji 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<