導航:首頁 > IDC知識 > 伺服器api

伺服器api

發布時間:2020-10-05 02:38:31

1、什麼是簽名?伺服器和APP之間的API介面和數據怎麼保證安全

apk簽名相當於程序的身份識別代碼。
apk簽名用於程序編譯打包之後,手機在運行程序之前會先去驗證程序的簽名(可以看作類似於我們電腦上常說的md5)是否合法,只有通過了驗證的文件才會被運行,所以簽名軟體的作用的讓文件通過手機的驗證為合法,不同的手機、系統是對應不同的簽名的。


進行加密通訊防止API外部調用
伺服器端與客戶端各自會存儲一個TOKEN,這個TOKEN我們為了防止反編譯是用C語言來寫的一個文件並做了加殼和混淆處理。
在客戶端訪問伺服器API任何一個介面的時候,客戶端需要帶上一個特殊欄位,這個欄位就是簽名signature,簽名的生成方式為:
訪問的介面名+時間戳+加密TOKEN 進行整體MD5,並且客戶端將本地的時間戳作為明文參數提交到伺服器
伺服器首先會驗證這兩個參數:驗證時間戳,如果時間誤差與伺服器超過正負一分鍾,伺服器會拒絕訪問(防止被抓包重復請求伺服器,正負一分鍾是防止時間誤差,參數可調整),
然後伺服器會根據請求的API地址和提交過來的時間戳再加上本地存儲的token按照MD5重新生成一個簽名,並比對簽名,簽名一致才會通過伺服器的驗證,進入到下一步的API邏輯

2、API伺服器是什麼意思

簡單來說,你使用的api介面會把參數消息傳到給api伺服器,然後api伺服器返回一個處理好消息給你。想像成函數過程的話,就是你使用了這個函數(就是傳參),知道返回類型,能得到返回值,具體函數體(也就是api伺服器)是怎麼做到的你不需要知道。

3、如何使用 APICloud 的端 API 連接到自己的伺服器資料庫獲取數據

1.如果想快速開發,沒有自己的伺服器,還是推薦使用雲API的數據雲。
2.不使用雲API的數據雲,可能是因為有web版且已經有商用數據。
3.不使用雲API的數據雲,需自己寫數據介面,即客戶端發送請求接收處理與生成json數據給客戶端進行交互。
4.感謝APICloud提供新的APP開發方式。

其實也不難,使用api.ajax進行請求即可。PHPer,以下使用演示使用PHP,資料庫使用Mysql,JAVA黨或者.NET黨請自行coding...

[連接到資料庫(文件放在伺服器上),伺服器端輸出JSON]

<?php
/*
* 配置連接資料庫信息
*/
$host='localhost';//主機
$user='root';//資料庫賬號
$password='';//資料庫密碼
$database='test';//資料庫名
//打開資料庫連接
$db=mysqli_connect($host,$user,$password,$database);
//判斷連接是否成功
if($db){
$db->query("set names utf8");//設置UTF-8編碼(JSON的唯一編碼)
}else{
echo 'DATABASE_CONNECTION_DIE';//資料庫連接失敗
exit;
}
//sql查詢語句
$sql="select id,name,sex,age from person";
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
$person_info[]=$row;//將取得的所有數據賦值給person_info數組
}
echo json_encode($person_info);//輸出JSON
?>
復制代碼
輸出的JSON示例:
[{"id":"1","name":"\u54c8\u5c3c","sex":"\u7537","age":"22"},{"id":"2","name":"\u5c0f\u9648","sex":"\u5973","age":"21"},{"id":"3","name":"\u5c0f\u767d","sex":"\u672a\u77e5","age":"1"}]
復制代碼
[測試用的資料庫SQL語句]
--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- 表的結構 `person`
--

CREATE TABLE IF NOT EXISTS `person` (
`id` int(11) NOT NULL,
`name` varchar(5) NOT NULL,
`sex` varchar(2) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 轉存表中的數據 `person`
--

INSERT INTO `person` (`id`, `name`, `sex`, `age`) VALUES
(1, '哈尼', '男', 22),
(2, '小陳', '女', 21),
(3, '小白', '未知', 1);
復制代碼

搞定伺服器端輸出JSON後,重點來了...

[端API使用api.ajax讀取介面數據]
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">

<meta name="viewport"
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<title>test</title>
</head>
<body>
<button onclick="showPersonInfo()">點我獲取數據</button>
</body>
<script type="text/javascript" src="../script/api.js"></script>
<script>
function showPersonInfo(){
api.showProgress();//顯示載入進度框
//使用api.ajax請求數據,具體使用方法和參數請看官方文檔,這里使用get方法演示
api.ajax({
url:'http://192.168.0.10/get.php',//如果地址訪問不到會請求出錯,請填寫自己的介面地址
method:'get',
cache:'false',
timeout:30,
dataTpye:'json',
},function(ret,err){
api.hideProgress();//隱藏載入進度框
if(ret){
for(var i=0;i<ret.length;i++){

var
html='<br>'+'ID:'+ret[i].id+'<br>'+'姓名:'+ret[i].name+'<
br>'+'性別:'+ret[i].sex+'<br>'+'年齡'+ret[i].age;
document.write(html);
}
}else{
api.alert({msg:('錯誤碼:'+err.code+';錯誤信息:'+err.msg+'網路狀態碼:'+err.statusCode)});
}
});
}
</script>
</html>

4、怎樣查看伺服器遠程API密鑰

密鑰對是通過一種演算法生成的一對密鑰,在生成的密鑰對中,一個向外界公開,稱為公鑰;另一個用戶自己保留,稱為私鑰。密鑰的公鑰內容可以通過這個介面查詢,但私鑰內容系統不保留。

可通過keyIds.n或keyName輸入參數作為過濾條件查詢。

5、易語言怎樣用api實現伺服器、客戶組建的功能

可以搜索下Socket套接字,一般的流程是:
WSAStartup 初始化Socket庫
socket 創建Socket實例 ,也就是這步確定是UDP還是TCP,是客戶還是伺服器
然後伺服器則是bind綁定埠,listen監聽埠,recv接收數據,sned發送數據
客戶則是connect連接客戶端,接收和發送和伺服器一樣
數據報則是bind綁定,recvfrom接收數據,sendto發送數據
當然最後還需要closeSocket關閉套接字實例和WSACleanup釋放套接字型檔
我這里這是簡單的提一下流程,具體的要參看專門講Socket的教程!

6、api伺服器簡介

了解規則

人們創造了社交禮儀來指引他們的交流。一個例子就是我們如何用電話和其他人交流。假設你正和朋友通話。當他們說話的時候,你知道自己應該保持安靜。你知道應該允許他們有短暫的停頓。如果他們問了一個問題,然後保持沉默,你知道他們希望得到回應,現在該你說話了。

計算機有相似的禮儀,雖然它們使用的術語是「協議」。計算機協議就是一組已經被接受的規則,這些規則約束計算機如何交談。然而,和我們的標准相比,計算機協議是非常死板的。花點時間想想這兩個句子「我最喜歡的顏色是藍色」和「藍色是我最喜歡的顏色」。雖然它們使用的詞的順序是不同的,但是我們可以分解這兩個句子並且知道它們的意思是一樣的。很不幸,計算機沒那麼聰明。

為了讓兩台計算機有效的交流,伺服器必須准確的知道客戶端會如何排列它的信息。你可以類比一個人詢問一個郵件地址。當你詢問一個地址的位置時,你假設首先被告知的是街道地址,隨後是城市,州,最後是郵政編碼。對於地址的每一部分,你也許會有特定的期望,比如郵政編碼應該只包含數字。計算機協議要想工作也需要類似的細節。

Web協議

有一個協議是幾乎針對一切的:每一個協議完成不同的工作。你可能聽說過一些協議:通信設備上用的藍牙,收郵件的POP或者IMAP。

在Web上,最主要的協議是超文本傳輸協議,它的縮寫更知名一些,HTTP。當你在瀏覽器中輸入http://example.com 這樣的地址的時候,「http」告訴瀏覽器使用HTTP的規則和伺服器通信。

由於HTTP在web上無處不在,因此很多公司選擇它作為自己的API的底層協議。使用熟悉的協議的一個好處就是可以降低開發者的學習曲線,鼓勵他們使用API。另一個好處是HTTP有幾個特性對於構建一個好的API非常有用,隨後我們會看到。現在讓我們擦去迷霧,看一看HTTP是如何工作的吧。

與伺服器api相關的知識