GitHub星標30.4K!這么經(jīng)典的面試解讀很少見了!
好久沒有和大家推薦面試相關的項目了,當下正是金九銀十的好時候,很多程序員們可能都在準備跳槽了,今天就和大家推薦一個面試項目——what-happens-when。
what-happens-when這個倉庫試圖回答一個古老的面試問題:當你在瀏覽器中輸入 google.com 并且按下回車之后發(fā)生了什么?不過,這些回答不再局限于平常的回答,而是想辦法回答地盡可能具體,不遺漏任何細節(jié)。
詳細目錄如下:
我們還是來看幾個問題吧:
按下"g"鍵
接下來的內(nèi)容介紹了物理鍵盤和系統(tǒng)中斷的工作原理,但是有一部分內(nèi)容卻沒有涉及。當你按下“g”鍵,瀏覽器接收到這個消息之后,會觸發(fā)自動完成機制。瀏覽器根據(jù)自己的算法,以及你是否處于隱私瀏覽模式,會在瀏覽器的地址框下方給出輸入建議。大部分算法會優(yōu)先考慮根據(jù)你的搜索歷史和書簽等內(nèi)容給出建議。你打算輸入 "google.com",因此給出的建議并不匹配。但是輸入過程中仍然有大量的代碼在后臺運行,你的每一次按鍵都會使得給出的建議更加準確。甚至有可能在你輸入之前,瀏覽器就將 "google.com" 建議給你。
輸入的是 URL 還是搜索的關鍵字?
當協(xié)議或主機名不合法時,瀏覽器會將地址欄中輸入的文字傳給默認的搜索引擎。大部分情況下,在把文字傳遞給搜索引擎的時候,URL會帶有特定的一串字符,用來告訴搜索引擎這次搜索來自這個特定瀏覽器。
檢查 HSTS 列表
瀏覽器檢查自帶的“預加載 HSTS(HTTP嚴格傳輸安全)”列表,這個列表里包含了那些請求瀏覽器只使用HTTPS進行連接的網(wǎng)站如果網(wǎng)站在這個列表里,瀏覽器會使用 HTTPS 而不是 HTTP 協(xié)議,否則,最初的請求會使用HTTP協(xié)議發(fā)送注意,一個網(wǎng)站哪怕不在 HSTS 列表里,也可以要求瀏覽器對自己使用 HSTS 政策進行訪問。瀏覽器向網(wǎng)站發(fā)出第一個 HTTP 請求之后,網(wǎng)站會返回瀏覽器一個響應,請求瀏覽器只使用 HTTPS 發(fā)送請求。然而,就是這第一個 HTTP 請求,卻可能會使用戶受到 downgrade attack 的威脅,這也是為什么現(xiàn)代瀏覽器都預置了 HSTS 列表。
目前,what-happens-when已經(jīng)在Github上標星 6.4K,累計 分支 740 個(Github地址:https://github.com/skyline75489/what-happens-when-zh_CN)感興趣的伙伴們不要錯過哦。