那些年與面試官交手過的HTTP問題

2021-02-15 前端開發博客

「觀感度:🌟🌟🌟🌟🌟」

「口味:剁椒魚頭」

「烹飪時間:20min」



本文已收錄在Github,https://github.com/Geekhyt/front-end-canteen,感謝Star。

從淡黃的長裙和蓬鬆的頭髮我察覺到,面前坐著的這位女面試官屬實是有點東西。我的自我介紹也變得聲情並茂起來。Skr~~~ 在此期間,小姐姐面無改色的看著我的簡歷。不過無所謂,這些都不重要。

還是咱們的原定計劃,把面試官引到了咱們最擅長的領域。

你覺得自己最擅長的是什麼?

HTTP 協議吧,我還算比較了解。

0.那你說一下OSI 網絡分層模型是怎樣分層的?

應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層

application layer、presentation layer、session layer、transport layer、network layer、data link layer、physical layer

1.TCP/IP 網絡分層模型是怎樣分層的?

應用層、傳輸層、網際層、連結層

application layer、transport layer、internet layer、link layer

2.TCP 和 UDP 區別?

TCP 和 UDP 都是傳輸層的協議,但二者有著截然不同的基因。

TCP:

UDP:

3.TCP 的三次握手和四次揮手簡單說一下三次握手

2.服務端收到並返回 SYN 以及 ACK 客戶端的 SYN

3.客戶端收到服務端的 SYN 和 ACK 後,發送 ACK 的 ACK 給服務端,服務端收到後連接建立

Server -> SYN/ACK -> Client

四次揮手

4.客戶端收到後,發送 ACK 的 ACK 給服務端,服務端關閉,客戶端等待 2MSL 後關閉

Client -> ACK -> Server -> CLOSED

Client -> 2MSL 的時間 -> CLOSED

4.什麼是HTTP協議?

(小白回答版)

HTTP 就是超文本傳輸協議呀,它的英文是 HyperText Transfer Protocol。

敲黑板!

(羅劍鋒老師的完美回答版)

HTTP 是一個在計算機世界裡專門在兩點之間傳輸文字、圖片、音頻、視頻等超文本數據的約定和規範。

(面試官:理解的不錯)

5.你知道哪些 HTTP 的請求方法?OPTIONS 獲取伺服器支持訪問資源的方法 (冪等)TRACE 回顯伺服器收到的請求,可以定位問題。(有安全風險)6.說一下HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2、HTTP/3各版本之間的區別?

請移步我的另一篇專欄。

HTTP的世界觀

7.說一下你對HTTPS的了解

HTTPS 就是在 HTTP 和 TCP 協議中間加入了 SSL/TLS 安全套接層。

結合非對稱加密和對稱加密的各自優點,配合證書。既保證了安全性,也保證了傳輸效率。

目前應用最廣泛的是TLS1.2,實現原理如下:

1.Client 發送 random1+對稱加密套件列表+非對稱加密套件列表2.Server 收到信息, 選擇 對稱加密套件+非對稱加密套件 並和 random2+證書(公鑰在證書中) 一起返回3.Client 驗證證書有效性,並用 random1+random2 生成 pre-master 通過伺服器公鑰加密+瀏覽器確認 發送給 Server4.Server 收到 pre-master,根據約定的加密算法對 random1+random2+pre-master(解密)生成 master-secret,然後發送伺服器確認5.Client 收到生成同樣的 master-secert,對稱加密秘鑰傳輸完畢

TLS1.3 則簡化了握手過程,完全握手只需要一個消息往返,提升了性能。不僅如此,還對部分不安全的加密算法進行了刪減。

8.你所謂的約定的加密算法應該是 ECDHE 橢圓算法吧?HTTP 傳輸消息都是明文的,黑客完全可以作為中間人劫持消息,再利用 ECDHE 算法,這樣不就能破解密鑰了嗎?

ECDHE 算法利用了橢圓曲線和離散對數等思想,按照當下的計算機算力,很難在短時間進行破解。且每次握手時生成的都是一對臨時的公鑰和私鑰,這樣就保證每次的密鑰對也不同。

即使大費力氣破解了一次的密鑰,之前的歷史消息也不會受到影響,保證了前向安全。

當然,TLS 協議的安全性受限於當下最快的計算機運行速度,理論上絕對安全的是量子通訊傳遞密鑰。

(面試官:小夥子有點東西)

(基操,勿6)

9.說一說你對DNS的理解?

DNS (Domain Name System)是網際網路中的重要基礎設施,負責對域名的解析工作,為了保證高可用、高並發和分布式,它設計成了樹狀的層次結構。

由根DNS伺服器、頂級域 DNS 伺服器和權威 DNS 伺服器組成。

解析順序是首先從瀏覽器緩存、作業系統緩存以及本地 DNS 緩存 (/etc/hosts) 逐級查找,然後從本地 DNS 伺服器、根 DNS、頂級 DNS 以及權威 DNS層層遞歸查詢。

還可以基於域名在內網、外網進行負載均衡。

不過傳統的 DNS 有很多問題(解析慢、更新不及時),HTTPDNS 通過客戶端 SDK 和服務端配合,直接通過 HTTP 調用解析 DNS 的方式,可以繞過傳統 DNS 這些缺點,實現智能調度。

(面試官:小夥子理解的挺細啊)

10.說一說你對 CDN 的理解?

CDN(Content Delivery Network)就是內容分發網絡。

為了突破現實生活中的光速、傳輸距離等物理限制,CDN 投入了大量資金,在全球範圍內各大樞紐城市建立機房,部署大量高存儲高帶寬的節點,構建跨運營商、跨地域的專用高速傳輸網絡。

其中分為中心節點、區域節點、邊緣節點等,在用戶接入網絡後,首先通過全局負載均衡 (Global Sever Load Balance),簡稱 GSLB 算法負責調度,找到離用戶最合適的節點。然後通過 HTTP 緩存代理技術進行緩存,緩存命中就返回給用戶,否則就回源站去取。CDN 擅長緩存靜態資源(圖片、音頻等),當然也支持動態內容的緩存。

11.說一說你對 WebSocket 的理解?

WebSocket 是一種基於 TCP 的輕量級網絡通信協議。和 HTTP/2 一樣,都是為了解決 HTTP 某些方面的缺陷而誕生的。不過解決方式略有不同,HTTP/2 針對的是「隊頭阻塞 」,WebSocket 針對的是「請求-應答」的通信模式。

我們知道「請求-應答」是半雙工的通信模式,不具備伺服器推送能力。這就限制了 HTTP 在實時通信領域的發展。雖然可以使用輪詢來不停的向伺服器發送 HTTP 請求,但是缺點也很大,反覆的無效請求佔用了大量的帶寬和 CPU 資源。所以,WebSocket 應運而生。

WebSocket 是一個全雙工通信協議,具備服務端主動推送的能力。本質上是對 TCP 做了一層包裝,讓它可以運行在瀏覽器環境裡。

看過我這篇專欄「吐血整理」再來一打Webpack面試題 的同學們一定知道,Webpack 的熱更新中就利用了這種協議。當然,在即時通訊、遊戲以及可視化大屏展示等領域中也都有著 WebSocket 的身影。

(關於 WebSocket 的過多細節這裡不再展開,後續有機會在專欄中詳細介紹,感興趣的同學們可以先自行學習)

12.HTTP 的緩存策略知道嗎?強緩存

伺服器使用 Cache-Control 來設置緩存策略,常用 max-age 來表示資源的有效期。

(這裡的 max-age 的時間計算起點是響應報文的創建時刻,而不是客戶端收到報文的時刻。)

(瀏覽器也可以發送 Cache-Control 欄位,使用 max-age=0 或 no-cache 來刷新數據)

如果想更精確的控制緩存策略,還可以使用 Cache-Control 的其他屬性:

no-store:不允許緩存 (用於秒殺頁面等變化頻率非常高的場景)no-cache:可以緩存,使用前必須要去服務端驗證是否過期,是否是最新版本must-revalidate:如果緩存不過期就可以繼續使用,過期了就必須去服務端驗證協商緩存

驗證資源是否失效就需要使用條件請求。常用的是 If-Modified-Since 和 If-None-Match,收到 304 狀態碼就可以復用緩存裡的資源。

(If-None-Match 比 If-Modified-Since 優先級更高)

驗證資源是否被修改的條件有兩個 Last-modified 和 ETag (ETag 比 Last-modified 的精確度更高),需要預先在服務端的響應報文裡設置,配合條件請求使用。

13.HTTP 如何進行內容協商?

內容協商就是每個 URI 指向的資源可以是任何事物,可以有很多不同的表述。對於文檔來說,可以有不同的語言、不同的媒體格式,並針對不同的瀏覽器提供不同的壓縮編碼。

客戶端在請求頭部中提出需要的表述形式,伺服器根據其來進行特定表述服務端返回 300 或者 406,由客戶端選擇一種表述協商要素內容編碼 (Accept-Encoding:gzip,deflate,br)表述語言 (Accept-Language:zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7)14.說一說 HTTP 的重定向

重定向是伺服器發起的跳轉,要求客戶端使用新的 URI 重新發送請求。在響應頭欄位 Location 中指示了要跳轉的 URI。使用 Refresh 欄位,還可以實現延時重定向。

301 / 302 是常用的重定向狀態碼。分別代表永久性重定向和臨時性重定向。

除此之外還有:

303:類似於 302,重定向後的請求方法改為 GET 方法307:類似於 302,含義比 302 更明確,重定向後請求的方法和實體不允許變動308:類似於 301,代表永久重定向,重定向後請求的方法和實體不允許變動300:是一個特殊的重定向狀態碼,會返回一個有多個連結選項的頁面,由用戶自行選擇304:是一個特殊的重定向狀態碼,服務端驗證過期緩存有效後,要求客戶端使用該緩存15.你知道哪些 HTTP 的常用的首部欄位?

(上文中提到過一些,這裡只列舉一些常用的)

(開始報菜名)

通用首部欄位Transfor-Encoding 報文主體的傳輸編碼格式請求首部欄位Host 請求資源所在的伺服器 (唯一一個HTTP/1.1規範裡要求必須出現的欄位)If-None-Match 比較實體標記 (ETag),與 If-Match 相反If-Modified-Since 比較資源更新時間 (Last-Modified)If-Unmodified-Since 比較資源更新時間 (Last-Modified), 與 If-Modified-Since 相反響應首部欄位實體首部欄位16.你知道哪些 HTTP 狀態碼?

(上文中提到過一些,這裡只列舉一些常用的)

(開始報菜名)

1xx1xx:請求已經接收到,需要進一步處理才能完成,HTTP/1.0 不支持101 Switch Protocols:協議升級使用102 Processing:伺服器已經收到並正在處理請求,但無響應可用2xx201 Created:有新資源在伺服器端被成功創建202 Accepted:伺服器接受並開始處理請求,但請求未處理完成206 Partial Content:使用range協議時返回部分響應內容時的響應碼3xx

請查閱上文重定向部分,這裡不再贅述。

4xx400 Bad Request:伺服器認為客戶端出現了錯誤,但不明確,一般是 HTTP 請求格式錯誤401 Unauthorized:用戶認證信息確實或者不正確403 Forbidden:伺服器理解請求的含義,但沒有權限執行407 Proxy Authentication Required:對需要經由代理的請求,認證信息未通過代理伺服器的驗證404 Not Found:伺服器沒有找到對應的資源408 Request Timeout:伺服器接收請求超時5xx500 Internal Server Error:伺服器內部錯誤,且不屬於以下錯誤類型502 Bad Gateway:代理伺服器無法獲取到合法響應503 Service Unavailable:伺服器資源尚未準備好處理當前請求505 HTTP Version Not Supported:請求使用的 HTTP 協議版本不支持

小姐姐拿起桌旁已經涼透的芋泥波波奶茶,喝了一口。

(精神小夥啊)

參考❤️愛心三連擊

1.看到這裡了就點個在看支持下吧,你的「在看」是我創作的動力。

2.關注公眾號前端開發博客,回復「加群」與我一起交流!

相關文章最後

轉發文章並關注公眾號:前端開發博客,回復 1024,領取前端進階資料

回復「JavaScript」獲取 JavaScript 精選文章

相關焦點

  • 面試技巧:盤點那些面試官大概率會提的問題及答案
    作者|重燃石 編輯|彼崖邊上時常聽到同事和朋友們抱怨,說面試官提的問題太難,根本不知道如何回答。我微笑著說,其實並不是面試官提的問題難,而是你們不知道如何在回答的過程中展示自己的優勢,所以沒被面試官錄取。只要我們找到了訣竅,就能輕鬆獲得面試官的青睞。
  • 面試總是get不到面試官的問題點,該怎麼辦?
    產品經理面試,你GET到面試官的問題點了嗎?經常有同學在我們的B端產品交流群裡提問:面試被說沒有回答到點子上,不知道如何總結和表達?這個是每一個有過面試經驗的,或者說正在面試的同學都會遇到問題。所以,想要面試取得理想結果,秘訣就在於「理解面試官問題背後的意圖」。舉例來說,在產品面試中最常碰到的問題就是:讓你談一談過往做過的項目或者產品。大多數產品經理,可能會把他做這個項目/產品的流程和細節全部講一遍,然後講了十幾分鐘,二十分鐘你還抓不到他具體想表達什麼。
  • 面試官》面試中的問題有哪些?聽面試官怎麼說
    在即將迎來2021年的時刻,《你好!面試官》也迎來了一個全新的第十個賽季!#2021屆高校畢業生預計909萬人#,如何才能在眾多的打者中脫穎而出?《你好!面試官》也許可以激發您的靈感。以優異的成績進入大學,儘管尚未畢業,但他們有豐富的經驗:拍過微電影,做過私人教練等,還在現場和面試官銀小冬跳了一段異域風情十足的新疆舞。第二位求職者鄭明是求職者的人力資源專家。求職者擁有豐富的學校經驗,這為她的求職增加了很多。但是面試官冷威的問題是「您現在的工作是關於人事,為什麼您還需要職位?」
  • 7個常見工作面試問題,面試官究竟想要什麼?
    但是我們卻忽略了一個很重要的環節:面試。這也是為什麼很多人明明符合條件,卻最終應聘失敗的主要原因:他們在面試環節表現不好,沒有給面試官留下一個好的印象。這篇文章,我們將討論7個常見的面試問題,並且分析,在這些問題的背後,面試官究竟想要獲得什麼。希望能對你的面試有所幫助。
  • 面試官:你可以向我提出問題,年輕小夥巧問過面試,這3點需牢記
    在我看到過的一檔綜藝節目,跟實習相關的節目,裡面有一個令我拍手叫好的一個問題,一般面試當中,面試官都會在結尾讓你提出問題,有的是兩個,有的是一個,問題不在多少,在於怎麼問,他是這麼問的:」各位面試官希望在錄取的實習生中,最希望看到這名實習生能夠具備什麼樣的品質?「,正是因為這個問題,巧問過了面試。
  • 面試官:你有沒有結婚?職場麗人說了實話,面試官不再言語
    因此,面試官在選人的時候會詢問是否結婚。但不管結婚與否,都各有優勢,也有劣勢。多數女性在面試的時候都會被問到關於婚戀的問題,這是一個關於個人隱私的問題,很多人是不願意回答的。小雯在北方的一家公司做策劃,因為工作量很大,薪資上又沒有增長,索性就選擇了辭職。由於工作能力強,她很快就收到了好幾家公司的面試機會。她選了一家心儀的公司參加面試。
  • 你準備怎麼回答面試官的問題?面試官必問「秘訣」
    2.不要覺得有些內容簡歷上已經寫過了就不用再重複(面試官可能並沒有那麼多時間去提前熟悉每一位應聘者),自我介紹環節還是要全面但簡潔的介紹自己。3.不要對自己的語言組織能力太過自信,建議將自我介紹先在紙上進行提煉,然後對著鏡子多練習幾次,時間最好控制在3分鐘以內。
  • 面試時究竟該不該向面試官問薪資問題?
    面試接近尾聲時,HR總會問應聘者這樣一個問題:「你還有什麼問題嗎?」得到這種信號,如果HR事先沒有向應聘者透露過公司的薪資和福利問題,很多應聘者都會選擇在這個時候問這些問題。很多人會覺得,如果在面試時過於直白地問工資,會給面試官造成不好的印象,會顯得應聘者太功利,對於職業的追求只有薪資水平的高低。但是如果沒有在上崗前問清楚薪資問題,萬一到了發工資那天,少得可憐,那苦跟誰說去呢?其實,薪資的確不是我們衡量一家公司的唯一標準,但沒有錢也是萬萬不行的。那麼我們究竟該如何有技巧的詢問薪資而不引起面試官反感呢?
  • 求職者面試時,這樣回答面試官問題,下一個錄用的就是你
    能獲得心儀企業的面試邀請,是邁開成功的第一步,而面試過程能否順利卻是影響你走向成功的關鍵因素。今天要給大家分享的是求職過程中人如何展現自己及如何回答面試官的問題。二、不要念簡歷,用故事和細節介紹職位相符的能力首先在自我介紹中要提到自己擅長的事,而你所說的這件事與你正應聘的崗位要強關聯,不要單純地羅列你曾就職於哪些單位,獲得過哪些獎項,而要講你在過去的這些工作中,獲得了什麼經驗以及積累了怎樣的克服困難的方法,這樣面試官才能進一步來判斷你是否合適所應聘的崗位。
  • 面試官最喜歡問的6個問題,面試前一定要準備
    面試官會通過以下3種問題的設計,去判斷候選人的能力、個性和動機:經驗性問題、行為性問題、文化價值觀(求職動機)問題。 這是一個自我評估問題,面試官通過這個問題可以考察候選人對公司/崗位是否提前做功課,從而推斷他是否真的對這個崗位感興趣,同時還可以通過他的回答初步了解候選人的優缺點,對自我認知的一個看法。 這個環節是你了解你自己、進行正確自我認知的重要環節。
  • 面試真經 | 面試完怎麼給面試官寫一封感謝郵件(附雙語fanwe)
    一個招聘網站曾做過這樣一個調查:面試官對那些誰不發送感謝信的候選人有什麼意見?86%的面試官都表示認為候選人「缺乏跟進」 ;56%的面試官覺得候選人「不認真對待這個職位」 ;22%的面試官表示不太可能僱用這類候選人。傳統的手寫感謝信,至少需要一天的時間來交付,並且可能會在被閱讀之前在郵件室或某人的桌子上待幾天。
  • 面試官:談談你的職業規劃,90後:對不起,你問題太多,我不面了
    面試官讓她先接電話。她接起來一聽,原來是同學找她吃飯。掛斷後面試官開始提問她對未來是否有職業規劃,三年內打算在公司做到什麼位置,如果應聘成功如何開展工作。結果這姑娘啥話沒說,直接站起來說不應聘了,搞得面試官一頭霧水。 面試官問她怎麼不想應聘了,是面試官們做的哪裡不好,這姑娘就很直接得對面試官說,不是面試官的問題,是她覺得面試官問的問題太多了,她很煩。
  • 面試7大問題,99%的面試官都會問到,這些話術你一定要知道
    面試是雙向選擇,但很多求職者害怕去面試,因為有的面試官喜歡提刁鑽的問題,讓很多求職者面試不愉快,所以在面試的過程中求職者臨場發揮就顯得很重要。但有的求職者也會遇到面試官喜歡擺官架子,認為進到他們公司是你的榮幸,所以面試會產生各方面的較量。
  • 面試官:木字多一筆,是啥字?小夥機智作答,面試官紛紛鼓掌
    但實際上,現在的學歷早就不是面試官衡量這個人能力的唯一標準了。面試官會專門設計一些話題來考驗你的綜合素質,以及情商和思維變通能力。小王是一名剛剛畢業的大學生,小王的學歷雖然不是很高,只是一般的本科,但是腦子很機靈,是一個聰明人。在參加一家公司的面試的時候,經過幾輪的專業知識測試和面試,進入最後一關的只有4個人。
  • 我們應如何撰寫感謝信,才能打動面試官?
    您好,我是昨天下午XX點參與XX崗位面試的候選人(暗示)XX,衷心感謝您給予我如此寶貴的面試機會,很高興見到您(與您的同事們)。其次,通過闡述面試過程中遺留的問題,給予面試官更多的參考信息,以判斷我們是否符合企業招聘的要求,即思考「我拿什麼來打動面試官」的問題。e.g.
  • 為了面試,雲南小夥租了一套新郎西服;面試官:很真誠,錄取!
    為了面試,雲南小夥租了一套新郎西服;面試官:很真誠,錄取!在綠春縣有一位男生小馬,為了這場面試特意去縣裡唯一的一家婚紗店,租借了一套並不合身的新郎西服來參加面試。由於小馬過於緊張,回答問題時連聲音都在顫抖,但是從他真誠的眼神中能夠看出他對機會的渴求、對未來生活的美好嚮往。經過綜合考慮、謹慎斟酌,面試官們認可了他的發展潛力,最後予以錄取。
  • 面試時,面試官問我未來5年的規劃,我該怎麼回答?
    ——來自網絡「王老師,我32歲了,面試時,面試官問我未來5年的規劃,我該怎麼回答?」這是一位職場人給老王的留言。看到這樣的問題,老王認為,在回答面試官的問題時,從來都沒有標準答案,不要試圖尋找標準答案。
  • 廣西北投集團舉辦2020年面試官培訓班
    廣西北投集團舉辦2020年面試官培訓班 2020-08-29 00:18 來源:澎湃新聞·澎湃號·政務
  • 面試官問:你期待工資多少,該怎麼回答?為什麼要問這個問題?
    導讀:面試官問你期待工資多少時,該怎麼回答?記得剛畢業的時候,參加過很多次面試,也回答過類似問題。如今作為一名負責招聘管理工作的HR,也經常會問到面試候選人類似的問題。作為面試官:我期望面試候選人能夠結合個人綜合能力回答,既不能妄自菲薄,報得太低;也不能好高騖遠,報得太高;德要配位,人要配財,貼合實際更重要。下面結合問題,做具體分析,希望能夠對你有所幫助。一、什麼情況下,面試官會提出「你期待工資是多少」的問題?常見的面試,一般分為初試和複試。
  • 面試完後,該不該給面試官打電話詢問面試效果?
    ,問問自己到底表現如何,但是不敢;有的時候心裡其實已經對整場面試效果有了一個預判,但還是想聽聽面試官怎麼說,又怕面試官拒絕,徒增對自己的不好的印象,只能在矛盾和糾結中等待…其實有的時候,面試的考察,一直持續到面試結束之後,所以打不打電話給面試官這個事,也並不是絕對的哈。