面試必備:技術術語

部分整理自網絡,若有侵權,請聯繫刪除。html

 

正向代理 & 反向代理

 正向代理:做爲一個媒介將互聯網上獲取的資源返回給相關聯的客戶端,代理和客戶端在一個局域網,對於服務端是透明的。java

反向代理:根據客戶端的請求,從後端的服務器上獲取資源,而後再將這些資源返回給客戶端,代理和服務器在一個局域網,對客戶端是透明的。web

web服務器 & 應用服務器

 

進程 & 線程 & 協程

進程:json

線程:後端

協程:跨域

 

GET & POST

get,能夠在瀏覽器中發請求瀏覽器

post,只能藉助工具,好比postman、jmeter緩存

一、GET使用URL或Cookie傳參。而POST將數據放在BODY中(post請求也能夠把數據放到url裏面)。安全

二、GET的URL會有長度上的限制,則POST的數據則能夠很是大。服務器

三、POST比GET安全,由於數據在地址欄上不可見(其實,經過抓包工具能夠抓post請求的數據,因此,也不安全)。

四、通常get請求用來獲取數據,post請求用來發送數據。

HTTP & HTTPS

  HTTP:是互聯網上應用最爲普遍的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可使瀏覽器更加高效,使網絡傳輸減小。

  HTTPS:是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,所以加密的詳細內容就須要SSL。

  HTTPS協議的主要做用能夠分爲兩種:一種是創建一個信息安全通道,來保證數據傳輸的安全;另外一種就是確認網站的真實性。

 

  HTTP協議傳輸的數據都是未加密的,也就是明文的,所以使用HTTP協議傳輸隱私信息很是不安全,爲了保證這些隱私數據能加密傳輸,因而網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來講,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

  HTTPS和HTTP的區別主要以下:

  一、https協議須要到ca申請證書,通常免費證書較少,於是須要必定費用。

  二、http是超文本傳輸協議,信息是明文傳輸,https則是具備安全性的ssl加密傳輸協議。

  三、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。

  四、http的鏈接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

參考:http://www.javashuo.com/article/p-bdgwsrxm-kr.html

http和webservice接口

httpservice經過post和get獲得你想要的東西
webservice就是使用soap協議獲得你想要的東西,相比httpservice能處理些更加複雜的數據類型 

http協議傳輸的都是字符串了,webservice則是包裝成了更復雜的對象。 
hessian相似於webservice,可是它採用的是二進制RPC協議(Binary),具備輕量、傳輸量小、平臺無關的特色,特別適合於目前網絡帶寬比較小的手機網絡應用項目。 
以hessan的java實現爲例,它能夠傳輸Map、List、以及自定義的各類數據接口;比http的純字符串也方便的多,省卻瞭解析http返回值的步驟。
  

http1.0和http1.1區別

1.0版本,http協議默認是無鏈接的,即一個http請求申請一個tcp鏈接,而後http鏈接斷開時,tcp鏈接也跟着斷開。又叫短鏈接。
1.1版本,http協議默認是長鏈接的,經過信息頭:Connection:keep-alive來實現。效果就是,一個http請求在完成時,能夠標註是keep-alive的,這樣的話,底層的tcp鏈接不須要斷開,能夠供多個http鏈接使用。

 

rpc框架原理,和http區別

http響應慢、請求頭大,因此在微服務時代,你們都使用rpc來調用服務。

 

tcp三次握手

參考:http://www.javashuo.com/article/p-mntnvwta-kq.html 

 

TCP & UDP

區別一:tcp是可靠的傳輸(發送方發一個數據,接收方收到數據後要回復確認信息,發送者纔會把本身操做系統緩存中的數據清理掉,若是發送方沒收到確認信息<接收者沒回復確認信息>,就會從操做系統緩存中取出數據再發一次這個數據),udp是不可靠的傳輸
tcp先創建鏈接,
udp不創建鏈接(不須要創建雙向鏈接),直接往目標地址發數據(也不須要管對方是否存在,無論對方是否收到,只管往外發),不須要收到對方的確認信息

區別二:傳輸效率:upd高(不須要創建鏈接,不須要確認,開銷小),tpc低(要創建鏈接,須要對方確認,都有開銷)

nio,bio,aio

https://www.jianshu.com/p/a660c17bb9ea

COOKIE & SESSION

一、存儲位置不一樣
cookie的數據信息存放在客戶端瀏覽器上。
session的數據信息存放在服務器上。
二、存儲容量不一樣
單個cookie保存的數據<=4KB,一個站點最多保存20個Cookie。
對於session來講並無上限,但出於對服務器端的性能考慮,session內不要存放過多的東西,而且設置session刪除機制。
三、存儲方式不一樣
cookie中只能保管ASCII字符串,並須要經過編碼方式存儲爲Unicode字符或者二進制數據。
session中可以存儲任何類型的數據,包括且不限於string,integer,list,map等。
四、隱私策略不一樣
cookie對客戶端是可見的,別有用心的人能夠分析存放在本地的cookie並進行cookie欺騙,因此它是不安全的。
session存儲在服務器上,對客戶端是透明對,不存在敏感信息泄漏的風險。
五、有效期上不一樣
開發能夠經過設置cookie的屬性,達到使cookie長期有效的效果。
session依賴於名爲JSESSIONID的cookie,而cookie JSESSIONID的過時時間默認爲-1,只需關閉窗口該session就會失效,於是session不能達到長期有效的效果。
六、服務器壓力不一樣
cookie保管在客戶端,不佔用服務器資源。對於併發用戶十分多的網站,cookie是很好的選擇。
session是保管在服務器端的,每一個用戶都會產生一個session。假如併發訪問的用戶十分多,會產生十分多的session,耗費大量的內存。
七、瀏覽器支持不一樣
假如客戶端瀏覽器不支持cookie:
cookie是須要客戶端瀏覽器支持的,假如客戶端禁用了cookie,或者不支持cookie,則會話跟蹤會失效。關於WAP上的應用,常規的cookie就派不上用場了。
運用session須要使用URL地址重寫的方式。一切用到session程序的URL都要進行URL地址重寫,不然session會話跟蹤還會失效。
假如客戶端支持cookie:
cookie既可以設爲本瀏覽器窗口以及子窗口內有效,也可以設爲一切窗口內有效。
session只能在本窗口以及子窗口內有效。
八、跨域支持上不一樣
cookie支持跨域名訪問。
session不支持跨域名訪問。 

同步、異步、阻塞、非阻塞

1. 同步與異步針對的是函數/任務的調用方式:同步就是當一個進程發起一個函數(任務)調用的時候,一直等到函數(任務)完成,而進程繼續處於激活狀態。而異步狀況下是當一個進程發起一個函數(任務)調用的時候,不會等函數返回,而是繼續往下執行當,函數返回的時候經過狀態、通知、事件等方式通知進程任務完成。

2. 阻塞與非阻塞針對的是進程或線程:阻塞是當請求不能知足的時候就將進程掛起,而非阻塞則不會阻塞當前進程

 

CI & CD

CI,就是持續集成(CONTINUOUS INTEGRATION)。

CD,持續交付(CONTINUOUS DELIVERY),既能夠指代碼持續交付,也可理解爲代碼持續部署。

參考:http://www.360doc.com/content/18/0903/11/19960613_783492490.shtml

 

契約測試

契約測試也叫消費者驅動測試。
兩個角色:消費者(Consumer)和 生產者(Provider)
一個思想:需求驅動(消費者驅動)
契約文件:由Consumer端和Provider端共同定義的規範,包含API路徑,輸入,輸出。一般由Consumber生成。
實現原理:Consumer 端提供一個相似「契約」的東西(如json 文件,約定好request和response)交給Provider 端,告訴Provider 有什麼需求,而後Provider 根據這份「契約」去實現。

參考:https://www.jianshu.com/p/e318fadf8553

相關文章
相關標籤/搜索