1.2 接口基礎知識

1.2.1 接口的定義

? ? ? 兩個不同的系統(tǒng)或者一個系統(tǒng)中有兩個不同的功能秉继,它們之間相互連接的部分就稱為接口。

? ? ? 應用程序編程接口(全名:Application Programma Interface辑鲤,簡稱:API)是一組定義杠茬、程序及協(xié)議的集合,API可實現(xiàn)計算機軟件之間的相互通信宁赤。API的主要功能是提供通用功能集栓票。程序員通過使用API函數(shù)開發(fā)應用程序走贪,從而可以避免編寫無用程序,減輕編程任務挚躯。

? ? ? 前后端分離是近年來Web應用開發(fā)的一個發(fā)展趨勢擦秽。這種模式具有以下優(yōu)勢:

? ? ? a.后端工程師不需要精通前端技術(shù)(如HTML、CSS缩搅、JS)触幼,只專注于數(shù)據(jù)的處理置谦,對外提供API即可。

? ? ? b.前端工程師的專業(yè)性越來越強媒峡,其通過API獲取數(shù)據(jù)谅阿,并專注于頁面設計酬滤。

? ? ? c.前后端分離可擴大接口的應用范圍盯串,開發(fā)的接口可以應用到Web頁面上戒良,也可以應用到App上。

1.2.2 接口的分類

? ? ? 依照所遵循的協(xié)議不同译打,常見的接口可以分為以下3類拇颅。

? ? ? a.HTTP 接口

? ? ? 它是基于超文本傳輸協(xié)議開發(fā)的接口,但并不能排除沒有使用其他協(xié)議韵洋。

? ? ? b.Web Server 接口

? ? ? 它是系統(tǒng)對外的接口搪缨,比如你要從別的網(wǎng)站或服務器上獲取資源鸵熟,一般來說,別人不會把數(shù)據(jù)庫共享給你痹届,他們會提供一個寫好的方法打月,讓你用來獲取數(shù)據(jù),你是用他們寫好的方法就能引用他們提供的接口柴淘,從而達到同步數(shù)據(jù)的目的秘通。

? ? ? c.RESTful 接口

? ? ? 簡稱REST肺稀,其描述了一個架構(gòu)樣式的網(wǎng)絡系統(tǒng),核心是面向資源炸茧。REST專門針對網(wǎng)絡應用設計和開發(fā)方式稿静,降低開發(fā)的復雜性,提高系統(tǒng)的可伸縮性控漠。

1.2.3 HTTP協(xié)議

? ? ? HTTP的主要特點可以概括為以下幾點盐捷。

? ? ? a.支持客戶端/服務器模式默勾。

? ? ? b.無連接。限制每次連接滞诺,使其只處理一個請求环疼。服務器處理完客戶端的請求炫隶,并收到客戶端的應答后,即斷開連接煞檩。采用這種方式可以節(jié)省傳輸時間望门。

? ? ? c.無狀態(tài)。HTTP是無狀態(tài)協(xié)議桐早,無狀態(tài)是指協(xié)議對于事務處理沒有記憶能力厨剪。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息祷膳,則必須重新上傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大搀军,如果服務器不需要前面的信息,則應答就會比較快焚刺。

1.2.4 HTTP請求

? ? ? HTTP請求包含四個部分门烂,分別是統(tǒng)一資源定位符屯远、請求方法(Method)、請求頭(Header)和請求體(Body)坡脐。

1咖气、統(tǒng)一資源定位符

? ? ? 統(tǒng)一資源定位符(Uniform Resource Locator)適用于完整地描述互聯(lián)網(wǎng)上網(wǎng)頁和其他資源地址的一種表示方法崩溪。URL給資源的位置提供一種抽象的表示方法,并用這種方法給資源定位觉既。URL相當于文件名在網(wǎng)絡范圍的擴展乳幸。

? ? ? URL的一般形式為:

? ? ? <協(xié)議>://<主機>:<端口>/<路徑>/<文件名>

? ? ? <協(xié)議> 指出獲取該互聯(lián)網(wǎng)資源所使用的的協(xié)議粹断。HTTP請求使用的是HTTP協(xié)議,除此之外希柿,還有文件傳輸協(xié)議(File Transfer Protocol养筒,F(xiàn)TP)晕粪。

? ? ? 在<協(xié)議>后面必須加? “ :// ” ,不能省略.

? ? ? <主機> 指出萬維網(wǎng)文檔是在哪一個主機上(可以給出域名装悲,也可以給出IP地址)。

? ? ? 在<主機>后面必須加? “ : ” 盆顾,不能省略.

? ? ? <端口> 為服務器監(jiān)聽的端口,HTTP默認為80端口奈懒,F(xiàn)TP默認為21端口磷杏。

? ? ? <路徑>和<文件名>進一步給出資源在服務器上的位置,但是他們的名稱是虛擬的慈格,和服務器上的物理名稱可能不同浴捆。

? ? ? 對于動態(tài)頁面稿械,用戶通常還需要給服務器提供訪問動態(tài)網(wǎng)頁的參數(shù)。因此页眯,URL后面還可以跟上一個英文冒號厢呵,問號的后面以“ 參數(shù)名稱 = 參數(shù)值 ”的形式給出多組參數(shù)襟铭,每一組參數(shù)之間用“ & ”分割,稱之為查詢串(Query String)道批。具體形式為

? ? ? <協(xié)議>://<主機>:<端口>/<路徑>/<文件名>?<參數(shù)1>=<值1>&<參數(shù)2>=<值2>

? ? ? https://www.baidu.com/s?ie=UTF-8&wd=postman

2隆豹、Method

? ? ? ? HTTP定義了與服務器交互的不同方法(Method)茅逮,基本方法有四種,分別是GET碉考、POST、PUT和DELETE侯谁⌒拷觯可以這樣理解:URL地址用戶描述一個網(wǎng)絡上的資源,而HTTP中的GET墙贱、POST热芹、PUT和DELETE方法對應著這個方法的“查”、“改”惨撇、“增”伊脓、“刪”操作,即GET一般用戶獲取魁衙、查詢資源信息报腔,而POST一般用戶更新資源信息等。

? ? ? 除上述四種方法以外纯蛾,其他的方法在接口測試中遇到的概率很小,即便遇到了祷蝌,也可以借助Postman工具構(gòu)造出相應請求茅撞。

GET方法和POST方法有什么區(qū)別呢?

? ? a.提交數(shù)據(jù)的方式不同巨朦。

? ? b.傳輸數(shù)據(jù)的大小不同米丘。

? ? c.安全性不同。

3糊啡、Header 和 Body

? ? HTTP報文是面向文本的拄查。HTTP請求報文由4個部分組成,分別是:

? ? ? ? ? ? ? ? a. <request-line> 請求行棚蓄;

? ? ? ? ? ? ? ? b. <headers> 請求頭堕扶;

? ? ? ? ? ? ? ? c. <blank line> 空行;

? ? ? ? ? ? ? ? d. <request-body> 請求數(shù)據(jù)梭依。

1.2.5 HTTP相應

? ? ? ? 將HTTP請求發(fā)送到服務器后稍算,服務器會給出相應的應答,服務器返回的應答消息成為HTTP響應役拴。

1糊探、HTTP響應報文

? ? ? ? HTTP響應報文同樣也是由4個部分組成,與請求報文的格式非常相似,具體格式為:

? ? ? ? ? ? ? ? a. <status-line> 狀態(tài)行科平;

? ? ? ? ? ? ? ? b. <headers> 消息報頭褥紫;

? ? ? ? ? ? ? ? c. <blank line> 空行;

? ? ? ? ? ? ? ? d. <response-body> 響應正文瞪慧。

? ? ? ? 響應報文和請求報文的區(qū)別在于髓考,第一行中用狀態(tài)信息代替了請求信息。狀態(tài)行通過提供一個狀態(tài)碼來說明所請求的資源情況弃酌。

? ? ? ? 狀態(tài)行格式為:HTTP - version Status - Code Reason-Phrase CRLF? 氨菇,其中:

? ? ? ? ? ? ? ? a. HTTP - version 表示服務器HTTP的版本;

? ? ? ? ? ? ? ? b. Status - Code 表示服務器返回的響應狀態(tài)碼矢腻;

? ? ? ? ? ? ? ? c. Reason-Phrase 表示狀態(tài)碼的文本描述门驾;

? ? ? ? ? ? ? ? d. CRLF 表示一個回車符和換行符。

? ? ? ? 狀態(tài)碼由3位數(shù)字組成多柑,第一位數(shù)字定義了響應的列表,它有如下5種取值可能楣责。

? ? ? ? ? ? ? ? a. 1 X X :指示信息竣灌,表示請求已接收,繼續(xù)處理秆麸。

? ? ? ? ? ? ? ? b. 2 X X :成功初嘹,表示請求已被成功接收、理解和接受沮趣。

? ? ? ? ? ? ? ? c. 3 X X :重定向屯烦,要完成請求必須進行更進一步的操作。

? ? ? ? ? ? ? ? d. 4 X X :客戶端錯誤房铭,請求有語法錯誤或請求無法實現(xiàn)驻龟。

? ? ? ? ? ? ? ? e. 5 X X :服務端錯誤,服務器未能處理合法的請求缸匪。

? ? ? ? 以下對常見的狀態(tài)代碼和狀態(tài)描述進行說明翁狐。

? ? ? ? ? ? ? ? a. 200 OK:客戶端請求成功。

? ? ? ? ? ? ? ? b. 400 Bad Request:客戶端請求有語法錯誤凌蔬,不能被服務端所理解露懒。

? ? ? ? ? ? ? ? c. 401Unauthorized:請求未經(jīng)授權(quán)。

? ? ? ? ? ? ? ? d. 403 Forbidden:服務器收到正確請求砂心,但是拒絕提供服務懈词。

? ? ? ? ? ? ? ? e. 404 Not Found:請求資源不存在,如輸入了錯誤的URL辩诞。

? ? ? ? ? ? ? ? f. 500 Internal Server Error:服務器發(fā)生了不可預期的錯誤坎弯。

? ? ? ? ? ? ? ? g. 503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間后可能恢復正常。

2荞怒、JSON

????????a. JS對象標記的定義

????????JS對象標記是一種輕量級的數(shù)據(jù)交換格式洒琢。它基于ECMAScript的子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)褐桌。簡潔和清晰的數(shù)據(jù)結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語言衰抑,其易于閱讀和編寫,同時也易于機器解析和生成荧嵌,并能有效地提升網(wǎng)絡傳輸效率呛踊。因此,HTTP接口響應一般為JSON格式啦撮。

????????b. JSON語法規(guī)則

????????JSON語法規(guī)則包括用大括號保存對象谭网、用鍵值對表示對象、用逗號分割每個對象赃春、用中括號保存數(shù)組愉择。

????????{"name":"michael","age":"23","gender":"male"}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市织中,隨后出現(xiàn)的幾起案子锥涕,更是在濱河造成了極大的恐慌,老刑警劉巖狭吼,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件层坠,死亡現(xiàn)場離奇詭異,居然都是意外死亡刁笙,警方通過查閱死者的電腦和手機破花,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疲吸,“玉大人座每,你說我怎么就攤上這事“醢保” “怎么了尺栖?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烦租。 經(jīng)常有香客問我延赌,道長,這世上最難降的妖魔是什么叉橱? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任挫以,我火速辦了婚禮,結(jié)果婚禮上窃祝,老公的妹妹穿的比我還像新娘掐松。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布大磺。 她就那樣靜靜地躺著抡句,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杠愧。 梳的紋絲不亂的頭發(fā)上待榔,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音流济,去河邊找鬼锐锣。 笑死,一個胖子當著我的面吹牛绳瘟,可吹牛的內(nèi)容都是我干的雕憔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼糖声,長吁一口氣:“原來是場噩夢啊……” “哼斤彼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蘸泻,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤畅卓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蟋恬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡趁冈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年歼争,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渗勘。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡沐绒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旺坠,到底是詐尸還是另有隱情乔遮,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布取刃,位于F島的核電站蹋肮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏璧疗。R本人自食惡果不足惜坯辩,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崩侠。 院中可真熱鬧漆魔,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辽社。三九已至讨衣,卻和暖如春育苟,著一層夾襖步出監(jiān)牢的瞬間泛啸,已是汗流浹背饥臂。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工腊敲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留找爱,地道東北人惯驼。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓清蚀,卻偏偏與公主長得像匕荸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枷邪,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容