json協議
A. 什麼是json、api、post、get請求。
Json
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於機器解析和生成。
1. "名稱/值"對的集合不同語言中,它被理解為對象(object),記錄(record),結構(struct),字典(dictionary),哈希表 (hash table),鍵列表(keyed list)等
2. 值的有序列表 多數語言中被理解為數組(array)
API
API(,應用程序編程介面)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體的以訪問一組常式的能力。
例如你自己寫了一個類,這個類里有很多函數,如果別人要用你這個類,但是並不知道每個函數內部是怎麼實現的,也就只是知道這個函數的入口參數和返回值或者只知道這個函數是做什麼用的,對於用戶來說你的這些函數就是API,也就是你寫的API,同樣,windowsapi就是微軟寫的一些函數。
POST和GET請求
一般我們在瀏覽器輸入一個網址訪問網站都是GET請求;再FORM表單中,可以通過設置Method指定提交方式為GET或者POST提交方式,默認為GET提交方式。
HTTP定義了與伺服器交互的不同方法,其中最基本的四種:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被稱為安全方法,因為使用GET和HEAD的HTTP請求不會產生什麼動作。不會產生動作意味著GET和HEAD的HTTP請求不會在伺服器上產生任何結果。但是安全方法並不是什麼動作都不產生,這里的安全方法僅僅指不會修改信息。
根據HTTP規范,POST可能會修改伺服器上的資源的請求。比如CSDN的博客,用戶提交一篇文章或者一個讀者提交評論是通過POST請求來實現的,因為再提交文章或者評論提交後資源(即某個頁面)不同了,或者說資源被修改了,這些便是「不安全方法」。
1、GET請求,請求的數據會附加在URL之後,以?分割URL和傳輸數據,多個參數用&連接。URL的編碼格式採用的是ASCII編碼,而不是uniclde,即是說所有的非ASCII字元都要編碼之後再傳輸。
POST請求:POST請求會把請求的數據放置在HTTP請求包的包體中。上面的item=bandsaw就是實際的傳輸數據。
因此,GET請求的數據會暴露在地址欄中,而POST請求則不會。
2、傳輸數據的大小
在HTTP規范中,沒有對URL的長度和傳輸的數據大小進行限制。但是在實際開發過程中,對於GET,特定的瀏覽器和伺服器對URL的長度有限制。因此,在使用GET請求時,傳輸數據會受到URL長度的限制。
對於POST,由於不是URL傳值,理論上是不會受限制的,但是實際上各個伺服器會規定對POST提交數據大小進行限制,Apache、IIS都有各自的配置。
3、安全性
POST的安全性比GET的高。這里的安全是指真正的安全,而不同於上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改伺服器的數據。比如,在進行登錄操作,通過GET請求,用戶名和密碼都會暴露再URL上,因為登錄頁面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時的用戶名和密碼就很容易被他人拿到了。除此之外,GET請求提交的數據還可能會造成Cross-site request frogery攻擊
4、HTTP中的GET,POST,SOAP協議都是在HTTP上運行的
B. 什麼是JSONP協議
JSONP -- 跨域數據交互協議
1、Web頁面調用js文件,可跨域。擴展:但凡有src屬性專的標簽都具有跨域能力。
2、跨域伺服器屬 動態生成數據 並存入js文件(通常json後綴),供客戶端 調用。
3、為了便於客戶端使用數據,形成一個非正式傳輸協議,稱為JSONP。該協議重點是允許用戶傳遞一個callback參數給伺服器,然後伺服器返回數據時 將此callback參數作為函數名包裹住JSON數據,使得客戶端可以隨意定製自己的函數來自動處理返回數據。
C. 伺服器端和客戶端進行json數據傳輸,json是不是也是通過http協議進行位元組流傳輸的
先看一看json的定義:復 JSON(JavaScript Object Notation) 是一種輕量級的制數據交換格式。
可見它只是一種數據格式,可以對其使用任何可行的傳輸協議。
但一般的網路傳輸都使用http協議,
這和使用http協議傳輸視頻格式文件,音頻的道理是一致的。
json的傳輸相當於對字元串的傳輸。
所以:
伺服器端和客戶端的json數據傳輸,可以而且最好使用http協議進行位元組流傳輸,但不僅限於http協議。
D. 有沒有TCP協議操作JSON的例子或者教程
1)XML 和JSON是兩種完全不同的數據表達方式。他們分別採用完全不同格式將原始版數據轉換成XML或者JOSN格式數據;然後權再將XML或JOAN格式的數據還原為原始數據
2)Socket是用來編寫TCP/IP或UDP/IP通信程序的;HTTP是使用TCP/IP的「應用層協議」,HTTP協議利用(藉助於) TCP/IP 實現傳輸。
3)XML和JSON都可以藉助HTTP進行傳輸
一個形象的比喻:TCP/IP是由SOCKET修建公路,HTTP是公路上跑的車,XML或JSON是車裝載的貨物。
E. JSON和JSONP的區別,以及使用方法
1、區別如下:
(1)、定義不同
JSON是一種基於文本的數據交換方式(不支持跨域),而JSONP是一種非官方跨域數據交互協議。
(2)、核心不同
json的核心是通過XmlHttpRequest獲取非本頁內容,而jsonp的核心則是動態添加<script>標簽來調用伺服器提供的js腳本。
2、使用方法如下
(1)、json的使用方法:
$.getJSON( " http://跨域的dns/document!searchJSONResult.action?
name1="+value1+"&jsoncallback=?", function(json){
if(json.屬性名==值){ // 執行代碼}
});
(2)、json的使用方法:
$.ajax({
async:false,
url: http://跨域的dns/document!searchJSONResult.action,
type:"GET",
dataType:'jsonp'
});
(5)json協議擴展閱讀:
JSONP的優缺點:
1、JSONP的優點
它不像XMLHttpRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持;並且在請求完畢後可以通過調用callback的方式回傳結果。
2、JSONP的缺點
它只支持GET請求而不支持POST等其它類型的HTTP請求;它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。
F. JSON和JSONP的區別
JSON(JavaScript Object Notation)和JSONP(JSON with Padding)雖然只有一個字母的差別,但其實他們根本不是一回事兒:JSON是一種數據交換格式,專而JSONP是一種依屬靠開發人員的聰明才智創造出的一種非官方跨域數據交互協議。我們拿最近比較火的諜戰片來打個比方,JSON是地下黨們用來書寫和交換情報的「暗號」,而JSONP則是把用暗號書寫的情報傳遞給自己同志時使用的接頭方式。看到沒?一個是描述信息的格式,一個是信息傳遞雙方約定的方法。
G. 開發中xml與json,http協議與 socket技術有什麼區別
1)XML 和抄JSON是兩種完全不同的數據表達襲方式。他們分別採用完全不同格式將原始數據轉換成XML或者JOSN格式數據;然後再將XML或JOAN格式的數據還原為原始數據
2)Socket是用來編寫TCP/IP或UDP/IP通信程序的;HTTP是使用TCP/IP的「應用層協議」,HTTP協議利用(藉助於) TCP/IP 實現傳輸。
3)XML和JSON都可以藉助HTTP進行傳輸
===
一個形象的比喻:TCP/IP是由SOCKET修建公路,HTTP是公路上跑的車,XML或JSON是車裝載的貨物。
H. json協議的用處和用法是什麼
json不是文本資料庫的一種嗎 和協議有什麼關系呀
作用就是存儲數據專呀 在網屬絡間傳遞復雜數據的時候 好處理一點
至於用法 這個取決於語言 不同語言的用法不同比如
json["a"]="abc"
json["b"]=123
{"a":"abc","b":123}
是不很方便呢?
I. json與jsonp的區別
JSON是一種數據交換格式,而JSONP是JSON的一種使用模式,是基於JSON的
簡單說就是JSON是協議,而JSONP是使用這種協議的一種方法