HTTP

  1. OSI 七層模型指什么
  • OSI:open system interconnection reference model 開放式系統(tǒng)信號(hào)互聯(lián)參考模型,是一種為了使全世界的計(jì)算機(jī)互聯(lián)為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架。
  • 分為七層:從下到上,分別為物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層,會(huì)話層,表達(dá)層,應(yīng)用層。
    physical layer,data link layer,network layer,transport layer,session layer,presentation layer,application layer;
    OSI模型.jpg

    reference
  1. HTTP 的工作原理是什么?
    HTTP(hyperText transfer protocol) 超文本傳輸協(xié)議,是發(fā)生在OSI模型的application layer上的應(yīng)用。(應(yīng)用層的作用:為應(yīng)用軟件設(shè)置的界面,以便與另一應(yīng)用軟件進(jìn)行通信)。其是一種客戶端終端(用戶)和服務(wù)器進(jìn)行請(qǐng)求和響應(yīng)的標(biāo)準(zhǔn)。
    工作流程:
  • client send request to the server
  • server receives request and handles the request of the client and send the result of handle request
  • in the transfer road ,it maybe cross the gateway(網(wǎng)關(guān)) or the proxy server or tunnel(隧道)
    reference
    reference

details

  • 客戶端和服務(wù)器建立通信連接。
  • 客戶端的應(yīng)用程序發(fā)出請(qǐng)求,而這個(gè)請(qǐng)求(針對(duì)frontend來說)被瀏覽器包裝成HTTP報(bào)文,其中包含start line ,head,body 發(fā)給服務(wù)器
  • 服務(wù)器接受這個(gè)報(bào)文,進(jìn)行解析,同時(shí)返回相應(yīng)的響應(yīng)信息。
  • 瀏覽器接受到服務(wù)器傳來的請(qǐng)求,進(jìn)行解析同時(shí)展示于頁面之上。
  • 客戶端和服務(wù)器通信斷開。
  1. URI 的格式是什么?常見的協(xié)議有哪些
    URI: uniform resource identifier
    一般由URL 和URN 組成
  • url :通過描述資源的位置來描述資源
  • URN: 通過名字來識(shí)別資源,一般和位置無關(guān)
    format:<scheme>://<user><password><host>:<port>/<path>;<params>?<query>#<hash>
    the protocol are file、ftp、mailto
  1. HTTP 協(xié)議有幾種和服務(wù)器交互的方法
  • get 、post 、put、delete、trace、option、head
  1. 狀態(tài)碼200,301,304,403,404,500,503分別代表什么意思
  • 200 通信成功。一切正常,對(duì)于請(qǐng)求和應(yīng)答的文檔都在后面
  • 301 重定向,資源轉(zhuǎn)移,應(yīng)該請(qǐng)求新的地址
  • 304 緩存沒有被modified
  • 403 forbidden 資源不可用。一般沒有權(quán)限去請(qǐng)求
  • 404 not found 找不到頁面
  • 500 server error 服務(wù)器出現(xiàn)狀況,無法完成請(qǐng)求
  • 503 server override 服務(wù)器因任務(wù)過載或維護(hù),而答應(yīng)
  1. 報(bào)文有哪幾部分組成?
    報(bào)文:the data block is that the client commit with the server / 是客戶端與服務(wù)端傳遞的數(shù)據(jù)包
    組成:三部分
  • start line 對(duì)報(bào)文進(jìn)行描述的起始行
  • heard 包含屬性的首部
  • body 可選的包含信息的數(shù)據(jù)塊
  1. 請(qǐng)求頭的格式和作用是什么?給個(gè)范例截圖說明
    看懂英文就知道什么作用了,??

  2. 首部的格式和作用是什么?給個(gè)范例截圖說明

  3. 主體的作用是什么?給個(gè)范例

  4. 簡(jiǎn)述瀏覽器緩存是如何控制的

  • 三次握手

  • 第一次握手,客戶端發(fā)出請(qǐng)求握手的報(bào)文,
  • 第二次握手,服務(wù)器接受到請(qǐng)求的報(bào)文,然后返回一個(gè)ack報(bào)文,同時(shí)為這次連接進(jìn)行資源的分配。
  • 第三次握手,客戶端接受到服務(wù)器發(fā)出的ack報(bào)文,然后開始為連接進(jìn)行分配資源。此后,建立了tcp連接。


    三次握手
  • 四次分手

  • 因?yàn)閿嚅_連接,有可能是發(fā)生在客戶端或者是服務(wù)端,然后稱為主機(jī)一二
  • 主機(jī)一想要斷開TCP連接,然后想主機(jī)二發(fā)送一個(gè)fin報(bào)文
  • 主機(jī)二接受fin報(bào)文,先發(fā)送一個(gè)ack,告訴主機(jī)一我還有數(shù)據(jù)沒有發(fā)完。完成數(shù)據(jù)之后,主機(jī)二進(jìn)入到ack-wait的狀態(tài),在發(fā)送一個(gè)FIN給主機(jī)一,說明自己要關(guān)閉連接的信息。
  • 主機(jī)一接收到主機(jī)二接受到FIN,知道主機(jī)二關(guān)閉了連接,但是不相信這個(gè)是不是真的,所以在發(fā)了一次,去確認(rèn)主機(jī)二是不是關(guān)閉了。等待2msl之后,沒有反饋,就知道自己不需要發(fā)送什么信號(hào),然后就自己進(jìn)行斷開鏈接
  • 主機(jī)二等了2msl之后,發(fā)現(xiàn)沒有信號(hào)發(fā)過來,就知道主機(jī)一斷開了信號(hào),然后也自己斷開了鏈接。
    四次分手

    reference
    reference

同時(shí),我們要知道HTTP鏈接是一個(gè)無狀態(tài)的短鏈接,用完就會(huì)斷開連接的。所以當(dāng)我們進(jìn)行一些長(zhǎng)時(shí)間的通信的時(shí)候,就發(fā)現(xiàn)現(xiàn)在的HTTP協(xié)議是無法完成的,所以要使用一些方式:輪詢

http長(zhǎng)鏈接和短鏈接
一般在即時(shí)聊天中使用長(zhǎng)鏈接的多,實(shí)現(xiàn)方式

  • content-type:keep-alive
  • long polling
  • polling
  • websocket
  • sse (server-sent event)
    reference
  1. 下圖各個(gè)參數(shù)是什么意思
    解釋

    看懂英文就好了。。。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容