1、靈魂發問 html
開始學習以前,先問一下本身,什麼是接口呢?接口是用來作什麼的呢?常見的接口類型有哪些?web
2、什麼是接口呢面試
接口:泛指實體吧本身提供給外界的一種抽象化物(能夠爲另外一實體),用以由內部操做分離出外部溝通方法,時期能被內部修改而不影響外界其餘實體與其交互的方式。下面簡單舉幾個例子。api
人類與電腦等信息機器或人類與程序之間的接口爲用戶界面。電腦等信息機器硬件組件間的接口叫硬件接口,信息機器軟件組件間的接口叫軟件接口。瀏覽器
在計算機中,接口是計算機系統兩個獨立的部件進行信息交換的共享邊界。這種交換能夠發生在計算機軟、硬件,外部設備或進行操做的人之間,也能夠是它們的結合安全
3、接口是用來作什麼的呢服務器
在整個系統設計中,因爲涉及到不少層,要使各層之間調用透明化,能夠按照接口作具體的事情,從而融合到整個系統中。工具
4、常見的接口類型有哪些post
接口是指外部系統與系統之間以及內部各子系統之間的交互點,包括外部接口和內部接口。內部接口包括上層服務與下層服務接口和同級接口。學習
常見web接口:1.http協議的接口;2.web service接口(如soup、rmi、rpc協議)
常見的http請求方式包括:get(查)、post(增),還有put(改)和delete(刪)。工做中常見的是get和post兩種。
GET:本質是發送一個請求來得到服務器上的某一資源。資源經過一組HTTP頭和呈現據(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠不會包含呈現數據。
(1)格式:請求參數寫在網址後面,用「?」鏈接,多個參數之間用「&」鏈接。如:https://api.douban.com/v2/book/search?q='',這是一個豆瓣查詢圖書信息的開發api,q='',單引號裏就是查詢的參數,如查詢《小王子》這本書的信息,則q='小王子',使用postman工具來試驗一下,以下圖:
(2)使用場景:get型接口用於獲取信息,多用於查詢數據,如列表查詢功能,點擊查詢按鈕就調用一個get接口,而後把信息返回出來
(3)特色:1)請求數據量小,2)參數暴露於url地址中,故存在安全隱患
POST:本質是向服務器提交數據。
(1)使用場景:如註冊、上傳、發帖等功能,如用戶在豆瓣網站對某本書進行收藏、寫筆記、發表評論
(2)特色:1)請求數據量大,2)安全性高
如豆瓣的發表評論的開放api,見下圖:
PUT:這個方法比較少見。HTML表單也不支持這個。本質上來說, PUT和POST極爲類似,都是向服務器發送數據,但它們之間有一個重要區別,PUT一般指定了資源的存放位置,而POST則沒有,POST的數據存放位置由服務器本身決定。客戶端向服務器傳送的數據取代指定文檔的內容。
舉個例子:如一個用於提交博文的URL,/addBlog。若是用PUT,則提交的URL會是像這樣的」/addBlog/abc123」,其中abc123就是這個博文的地址。而若是用POST,則這個地址會在提交後由服務器告知客戶端。目前大部分博客都是這樣的。顯然,PUT和POST用途是不同的。具體用哪一個還取決於當前的業務場景。
(1)說明:put請求用於向指定資源位置上傳最新內容
(2)場景:如用戶在豆瓣網站修改對某本書的收藏、修改某篇筆記或修改評論
如豆瓣的修改評論的開放api,見下圖:
DELETE:刪除某一個資源。基本上這個也不多見,不過仍是有一些地方好比amazon的S3雲服務裏面就用的這個方法來刪除資源。
(1)說明:請求服務器刪除請求裏url所標識的資源
(2)場景:如用戶在豆瓣網站取消對某本書的收藏、刪除某篇筆記或刪除評論
如豆瓣的刪除評論的開放api,見下圖:
最後,分享一道面試中常會給問到的面試題!!!
get和post的區別?
這個問題,面試中常常被提到。簡單來講,能夠從三個方面去回答這個區別:方式、大小、安全
1).方式
方式指的是參數的傳入方式,GET方法通常是指獲取服務器上的數據,參數直接跟着URL後邊,直接能夠放到瀏覽器地址欄裏,例如登陸就是採用GET方法。而POST方法是指客戶端給服務器上提交表單數據,因此POST是經過表單提交的,例如你網頁上的新用戶的註冊、調查問卷和答題就是採用POST方法。
2).大小
上面已經知道GET是直接在瀏覽器地址欄輸入,因爲瀏覽器有限制,通常整個URL的長度能夠很長,可是不能超過2049KB的大小限制,而這個POST就沒有大小限制。
3).安全性
因爲GET的參數是在瀏覽器地址欄直接拼接,暴露在互聯網中,確定不安全。POST是經過表單數據提交,相對比GET方法更安全。