華為云計算電話面試與參考答案總結(jié)

1. 先做一個自我介紹
略。
2. DNS域名解析的過程,從用戶點擊一個url開始發(fā)生的一系列事情。
域名解析過程:
(1)你使用的電腦發(fā)送了一個DNS請求到本地DNS服務(wù)器,本地DNS服務(wù)器一般都是你的網(wǎng)絡(luò)接入服務(wù)器商提供。
(2)當(dāng)DNS請求到達(dá)本地DNS服務(wù)器之后,本地DNS服務(wù)器會首先查詢它的緩存記錄,如果緩存中又該條記錄,直接返回。如果沒有,向根DNS服務(wù)器發(fā)出請求。
(3)根DNS服務(wù)器上沒有域名IP對應(yīng)關(guān)系,而是告訴本地服務(wù)器,你可以去問問域服務(wù)器,同時給出域服務(wù)器的地址。
(4)本地DNS服務(wù)器繼續(xù)拿著根DNS服務(wù)器給他的地址,繼續(xù)向域服務(wù)器發(fā)出請求。
(5)域服務(wù)器收到請求后,它也沒有域名IP對應(yīng)關(guān)系,不過他會根據(jù)本地服務(wù)器的請求告訴本地DNS服務(wù)器:你去XX域名解析服務(wù)器查吧。同時返回對應(yīng)的解析服務(wù)器地址。
(6)本地服務(wù)器又拿著域服務(wù)器給他的解析服務(wù)器的地址,去請求域名解析服務(wù)器。
(7)域名解析服務(wù)器收到請求后,將對應(yīng)的域名IP關(guān)系,返回給本地DNS服務(wù)器。
(8)本地DNS服務(wù)器拿到域名IP對應(yīng)關(guān)系后,將該對應(yīng)關(guān)系保存到緩存中,以便下一次訪問。然后將域名IP的關(guān)系返回到本地電腦。
當(dāng)用戶在瀏覽器輸入了url:
1)如果地址是一個IP地址,會直接找該IP對應(yīng)的網(wǎng)絡(luò)計算機。如果不是IP地址,則通過DNS(域名系統(tǒng))將該地址解析成IP地址,再去網(wǎng)絡(luò)上找對應(yīng)的計算機。DNS服務(wù)器本身也IP,你的網(wǎng)絡(luò)設(shè)置包含DNS服務(wù)器的IP。
注:DNS解析完成,查找對應(yīng)的網(wǎng)絡(luò)計算機時,可能電腦直接詢問的DNS服務(wù)器可能沒有對應(yīng)的IP,那當(dāng)前DNS服務(wù)器就會向它的上級服務(wù)器詢問,上級服務(wù)器也可能沒有,就依次一層層向上找,最高查找到根節(jié)點,找到或者一直找不到為止。
2)如果地址不包含端口號,協(xié)議的默認(rèn)端口號為80。如果指定了端口好,那么使用指定的端口號。
3)IP和端口號都確定后,發(fā)起請求,連接對應(yīng)的網(wǎng)絡(luò)計算機和對應(yīng)的端口。
4)根據(jù)http協(xié)議要求,需要把大量的請求信息放在請求頭上,發(fā)送給對應(yīng)的服務(wù)器。包括請求的資源路徑、請求者身份等信息。
5)服務(wù)器響應(yīng)請求,將數(shù)據(jù)返回給瀏覽器。瀏覽器接受到html類型的代碼,開始渲染頁面,當(dāng)遇到內(nèi)嵌資源地址時,再次向瀏覽器發(fā)送請求來獲取這些資源。(如果資源路徑指示的資源不存在,服務(wù)器就會返回404錯誤。)
6)將渲染好的頁面顯示出來,并開始響應(yīng)用戶的操作。
3. http請求具體包括哪些,請求頭的內(nèi)容
(1) 請求報文 (請求行/請求頭/請求數(shù)據(jù)/空行)
a. 請求行
求方法字段、URL字段和HTTP協(xié)議版本
例如:GET /index.html HTTP/1.1
( get方法將數(shù)據(jù)拼接在url后面,傳遞參數(shù)受限。)
b. 請求方法:
GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
c. 請求頭(key value形式)
User-Agent:產(chǎn)生請求的瀏覽器類型。
Accept:客戶端可識別的內(nèi)容類型列表。
Host:主機地址
d. 請求數(shù)據(jù)
post方法中,會把數(shù)據(jù)以key value形式發(fā)送請求
e. 空行
發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭
(2) 響應(yīng)報文 (狀態(tài)行、消息報頭、響應(yīng)正文)
狀態(tài)行
消息報頭
響應(yīng)正文
舉個例子:
1 GET/sample.jspHTTP/1.1
2 Accept:image/gif.image/jpeg,/
3 Accept-Language:zh-cn
4 Connection:Keep-Alive
5 Host:localhost
6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
7 Accept-Encoding:gzip,deflate
8
9 username=jinqiao&password=1234
第一行為http請求行,包含方法,URI 和http版本
2-7為請求頭,包含瀏覽器,主機,接受的編碼方式和壓縮方式
第8行表示一個空行 表示請求頭結(jié)束 這個空行是必須的
第9行是數(shù)據(jù)體,比如是需要查詢的信息。
http響應(yīng)體由三部分組成,分別是狀態(tài)行,響應(yīng)頭,響應(yīng)正文。
狀態(tài)行是由:HTTP-Version + Status-Code + Reason-Phrase
http版本 + 狀態(tài)碼 + 狀態(tài)代碼的文本描述
例如:HTTP/1.1 200 ok
響應(yīng)頭:包含服務(wù)器類型,日期,長度,內(nèi)容類型等
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112
響應(yīng)正文響應(yīng)正文就是服務(wù)器返回的HTML頁面或者json數(shù)據(jù)
4. 跨域問題遇到過嗎?什么是跨域?怎么解決的。
跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。同源是指,域名,協(xié)議,端口均相同。
(1)JSONP原理:
(JSONP只支持GET請求,不支持POST請求。)
ajax請求受同源策略影響,不允許進(jìn)行跨域請求,script的src屬性可以隨意引入不同源的js文件,利用這個特性,服務(wù)端不再返回JSON格式的數(shù)據(jù),而是返回一段調(diào)用某個函數(shù)的js代碼,在src中進(jìn)行了調(diào)用,這樣實現(xiàn)了跨域。
(2)代理模式:
例如www.123.com/index.html需要調(diào)用www.456.com/server.php,可以寫一個接口www.123.com/server.php,由這個接口在后端去調(diào)用www.456.com/server.php并拿到返回值,然后再返回給index.html,這就是一個代理的模式。相當(dāng)于繞過了瀏覽器端,自然就不存在跨域問題。
(3)PHP端修改header(XHR2方式)
在php接口腳本中加入以下兩句即可:
header('Access-Control-Allow-Origin:*');//允許所有來源訪問 header('Access-Control-Allow-Method:POST,GET');//允許訪問的方式
5. 前后端分離具體講一下架構(gòu)是怎么實現(xiàn)的。前后端分離的理解。
前后端分離核心思想是前端HTML頁面通過AJAX調(diào)用后端的RESTFUL API接口并使用JSON數(shù)據(jù)進(jìn)行交互。通過nginx+tomcat的方式(也可以中間加一個nodejs)有效的進(jìn)行解耦。
Web服務(wù)器:一般指像Nginx,Apache這類的服務(wù)器,他們一般只能解析靜態(tài)資源;
應(yīng)用服務(wù)器:一般指像Tomcat,Jetty,Resin這類的服務(wù)器可以解析動態(tài)資源也可以解析靜態(tài)資源,但解析靜態(tài)資源的能力沒有web服務(wù)器好。
前后端完全分離:
前端:負(fù)責(zé)View和Controller層。 后端:只負(fù)責(zé)Model層,業(yè)務(wù)/數(shù)據(jù)處理等。
前端使用Node.js實現(xiàn)controller層。Node.js適合運用在高并發(fā)、I/O密集、少量業(yè)務(wù)邏輯的場景。Nodejs路由的實現(xiàn)邏輯是把前端靜態(tài)頁面代碼當(dāng)成字符串發(fā)送到客戶端(例如瀏覽器),簡單理解可以理解為路由是提供給客戶端的一組api接口,只不過返回的數(shù)據(jù)是頁面代碼的字符串。
補充一個知識點:
web工程結(jié)構(gòu)會分為三層,自下而上是dao層,service層和controller層。
dao層是數(shù)據(jù)層,直接進(jìn)行數(shù)據(jù)庫的讀寫操作,返回數(shù)據(jù)對象DO,DO與數(shù)據(jù)庫表一一對應(yīng)。
service層為業(yè)務(wù)層,用來實現(xiàn)業(yè)務(wù)邏輯。能調(diào)用dao層或者service層,返回數(shù)據(jù)對象DO或者業(yè)務(wù)對象BO,BO通常由DO轉(zhuǎn)化、整合而來,可以包含多個DO的屬性,也可以是只包含一個DO的部分屬性。通常為了簡便,如果無需轉(zhuǎn)化,service也可以直接返回DO。外部調(diào)用(HTTP、RPC)方法也在這一層,對于外部調(diào)用來說,service一般會將外部調(diào)用返回的DTO轉(zhuǎn)化為BO。
controller層為控制層,主要處理外部請求。調(diào)用service層,將service層返回的BO/DO轉(zhuǎn)化為DTO/VO并封裝成統(tǒng)一返回對象返回給調(diào)用方。如果返回數(shù)據(jù)用于前端模版渲染則返回VO,否則一般返回DTO。不論是DTO還是VO,一般都會對BO/DO中的數(shù)據(jù)進(jìn)行一些轉(zhuǎn)化和整合,比如將gender屬性中的0轉(zhuǎn)化“男”,1轉(zhuǎn)化為“女”等。
controller的功能應(yīng)該有以下五點:
1.參數(shù)校驗
2.調(diào)用service層接口實現(xiàn)業(yè)務(wù)邏輯
3.轉(zhuǎn)換業(yè)務(wù)/數(shù)據(jù)對象
4.組裝返回對象
5.異常處理
6. 講一下對緩存的了解,cookie和session。
cookie是瀏覽器實現(xiàn)的一種數(shù)據(jù)存儲功能,由服務(wù)器生成,發(fā)送給瀏覽器,瀏覽器把cookie以kv形式保存到某個目錄下的文本文件內(nèi),下一次請求同一網(wǎng)站時會把該cookie發(fā)送給服務(wù)器。
服務(wù)器使用session把用戶的信息臨時保存在了服務(wù)器上,用戶離開網(wǎng)站后session會被銷毀。這種用戶信息存儲方式相對cookie來說更安全,可是session有一個缺陷:如果web服務(wù)器做了負(fù)載均衡,那么下一個操作請求到了另一臺服務(wù)器的時候session會丟失。 Seesion:每次認(rèn)證用戶發(fā)起請求時,服務(wù)器需要去創(chuàng)建一個記錄來存儲信息。當(dāng)越來越多的用戶發(fā)請求時,內(nèi)存的開銷也會不斷增加。
2.可擴展性:在服務(wù)端的內(nèi)存中使用Seesion存儲登錄信息,伴隨而來的是可擴展性問題。
補充(token):
目前多數(shù)主流網(wǎng)站的登錄驗證使用Token,如github、facebook等?;赥oken的身份驗證是無狀態(tài)的,我們不將用戶信息存在服務(wù)器或Session中。
(1)用戶登錄校驗,校驗成功后就返回Token給客戶端。
(2)客戶端收到數(shù)據(jù)后保存在客戶端。
(3)客戶端每次訪問API是攜帶Token到服務(wù)器端。
(4)服務(wù)器端采用filter過濾器校驗。校驗成功則返回請求數(shù)據(jù),校驗失敗則返回錯誤碼。
相關(guān)文章
- 這篇文章主要介紹了云計算常見面試題及參考答案,涉及云計算常見的概念、原理、知識點與相關(guān)注意事項,需要的朋友可以參考下2019-10-11
華為Java社招面試經(jīng)歷詳解【已拿到offer】
這篇文章主要介紹了華為Java社招面試經(jīng)歷,詳細(xì)記錄了華為java面試的流程、相關(guān)面試題與參考答案,需要的朋友可以參考下2019-09-17- 這篇文章主要介紹了華為筆試算法面試題與參考答案,結(jié)合實例形式分析了基于C++的字符串轉(zhuǎn)換、判斷、排序等算法相關(guān)操作技巧,需要的朋友可以參考下2019-09-05
- 這篇文章主要介紹了華為16道經(jīng)典面試題與參考思路,總結(jié)分析了華為面試中遇到的經(jīng)典問題,并提供了相應(yīng)的解答思路供讀者參考,需要的朋友可以參考下2019-08-01
- 這篇文章主要介紹了據(jù)說華為的一道Java面試題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-29
- 面試者選擇一種編程語言,兩輪面試,每輪約45分鐘。其中面試者編程30分鐘,面試官提問與討論15分鐘。今天小編給大家討論下華為面試改革加強考察編程難度大增,感興趣的朋友2019-05-14
精選11道Java技術(shù)面試題及對應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見的技術(shù)難點與java常見面試題,需要的朋友可以參考下2019-04-11- 這篇文章主要介紹了大數(shù)據(jù)工程師面試題與參考答案,總結(jié)整理了大數(shù)據(jù)相關(guān)的基本概念、原理、知識點與注意事項,需要的朋友可以參考下2019-09-16
大數(shù)據(jù)基礎(chǔ)面試題考點與知識點整理
這篇文章主要介紹了大數(shù)據(jù)基礎(chǔ)面試題考點與知識點,總結(jié)整理了大數(shù)據(jù)常見的各種知識點、難點、考點以及相關(guān)注意事項,需要的朋友可以參考下2019-09-09BAT面試中的大數(shù)據(jù)相關(guān)問題筆記
這篇文章主要介紹了BAT面試中的大數(shù)據(jù)相關(guān)問題,涉及大數(shù)據(jù)相關(guān)的概念、原理、知識點與算法等問題,需要的朋友可以參考下2019-08-30