日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“约见”面试官系列之常见面试题第四十三篇之页面输入url之后发生了什么?(建议收藏)

發布時間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “约见”面试官系列之常见面试题第四十三篇之页面输入url之后发生了什么?(建议收藏) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主旨:幫助自己理清頁面輸入url地址之后的一個整體流程

?

首先,用戶第一次向服務器發送對應url地址請求,此時,客戶端沒有緩存

1.用戶輸入url通過DNS解析為對應的IP地址。

2.應用層:HTTP協議生成針對目標Web服務器的HTTP請求報文。

3.傳輸層:TCP協議為了傳輸方便,將HTTP請求報文進行分割,并在各個報文上打上標記序號及端口號后轉發給網絡層。

4.網絡層:IP協議增加作為通信目的地的MAC地址后轉發給鏈路層。

接收端的服務器在鏈路層接收到數據,按序往上層發送,一直到應用層。

然后服務器將返回對應請求,設置相應的緩存

?

這中間還涉及一個面試很喜歡問的問題,就是TCP協議中的“三次握手,四次揮手

握手過程中使用了TCP標志——SYN(synchronize)和ACK(acknowledgement)

1.發送端首先發送一個帶SYN標志的數據包給對方

2.接收端接收到后,回傳一個帶有SYN/ACK標志數據包表示傳達確認信息

3.發送端再回傳一個帶ACK標志的數據包,代表“握手結束”

四次揮手

1.客戶端(Client)發送中斷連接請求,發送FIN報文

2.服務端(Server)接收到FIN報文后,向客戶端發送ACK報文(反饋客戶端信息,你的請求我收到了,但是我還沒有準備好,請等待我的消息),這個時候客戶端就進入FIN-WAIT狀態

3.當服務端確定數據已發送完畢,則向客戶端發送FIN/ACK報文,告訴客戶端,我這邊數據發送完畢,可以關閉連接

4.客戶端收到信息后,就知道可以關閉連接了,但它不相信網絡,怕服務端不知道要關閉,所以發送ACK報文后進入TIME_WAIT狀態,如果服務端沒有收到ACK則可以重傳,服務端收到ACK后,就直到可以斷開連接了。客戶端等待2MSL后依然沒有收到回復,則證明服務端已經正常關閉,那好,客戶端也關閉連接。TCP連接關閉

?

?

當第一次請求完成之后,以后再進行相應請求時,就要討論緩存是否過期的問題了

看完這幅圖,有沒有什么大膽的想法~

根據這幅圖,一步一步理清關于頁面輸入url地址之后發生了什么這個問題

前提:客戶端對于上述url地址請求是有緩存的

Expires

首部字段Expires會將資源失效的日期告知客戶端。緩存服務器在接收到含有首部字段Expires的響應后,會以緩存來應答請求,在Expires字段值指定的時間之前,響應的副本會一直被保存。當超過指定的時間后,緩存服務器在請求發送過來時,會轉向源服務器請求資源。

當緩存未過期時,頁面直接取緩存,進行頁面展示。

緩存過期后,進行Etag判斷

ETag

首部字段ETag能告訴客戶端實體標識。它是一種可將資源以字符串形式做唯一性標識的方式。服務器會為每份資源分配對應ETag值。

另外,當資源更新時,ETag值也需要更新。生成ETag值時,并沒有統一的算法規則,而僅僅是由服務器來分配。

強ETag值:不論實體發生多么細微的變化都會改變其值。

弱ETag值:只用于提示資源是否相同。只有資源發生了根本改變,產生差異時才會改變ETag值。這時,會在字段值最開始處附加W/。

If-None-Match

屬于附帶條件之一。用于指定If-None-Match字段值的實體標記(ETag)值與請求資源的ETag不一致時,它就告知服務器處理該請求。

在GET或HEAD方法中使用首部字段If-None-Match可獲得最新的資源

Last-Modified

指明資源最終被修改的時間。

If-Modified-Since

附帶條件之一。

用于確認代理或客戶端擁有的本地資源的有效性。

它會告知服務器若If-Modified-Since字段值早于資源的更新時間,則希望能處理該請求。

而在指定字段值的日期時間之后,如果請求的資源都沒有更新過,則返回狀態碼304響應。

200 OK

從客戶端發來的請求在服務器端被正常處理了。

304 Not Modified

服務器端資源未改變,可直接使用客戶端未過期的緩存。資源已找到,但未符合條件請求

表示客戶端發送附帶條件的請求時,服務器端允許請求訪問資源,但因發生請求未滿足條件的情況后,直接返回304。

總結:

當頁面輸入url地址之后,首先進行是否有緩存的判斷,沒有緩存,正常通過向服務器發起請求獲取頁面資源

有緩存的話進行緩存是否過期等一系列判斷,最終將頁面資源展示出來

先走緩存,再服務器請求,一切以快速,簡捷為目的

?

上面只是簡單介紹了一下從輸入url到請求到頁面資源的過程,還有頁面展示,各種緩存的問題,有興趣的朋友可以自己研究一下,這里就先不做介紹

本面試題為前端常考面試題,后續有機會繼續完善。我是歌謠,一個沉迷于故事的講述者。

歡迎一起私信交流。

“睡服“面試官系列之各系列目錄匯總(建議學習收藏)?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题第四十三篇之页面输入url之后发生了什么?(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。