<6>web服務(wù)的數(shù)據(jù)收發(fā)操作

<6>web服務(wù)的數(shù)據(jù)收發(fā)操作

  1. 服務(wù)器程序的結(jié)構(gòu)

    1. 連接模塊
    2. 負(fù)責(zé)與客戶端通信的模塊
  2. 服務(wù)端的嵌套字和端口號(hào)

    1. 客戶端調(diào)用Socket庫(kù)階段

      1. 創(chuàng)建嵌套字
      2. 用管道連接服務(wù)器端的嵌套字
      3. 收發(fā)階段
      4. 斷開(kāi)管道并刪除嵌套字
    2. 服務(wù)端調(diào)用Socket庫(kù)階段

      1. 創(chuàng)建嵌套字
      2. 將嵌套字設(shè)置為等待連接狀態(tài)
      3. 接受連接
      4. 收發(fā)階段
      5. 斷開(kāi)管道并刪除嵌套字
    3. 應(yīng)用程序和協(xié)議棧之間是使用描述符來(lái)代替嵌套字

      1. 等待連接的嵌套字中沒(méi)有客戶端IP地址和端口號(hào)
      2. 使用描述符這種信息比較簡(jiǎn)單

6.2服務(wù)器的收發(fā)操作

2020年5月5日

21:00

  1. 網(wǎng)卡將接收到的信號(hào)轉(zhuǎn)換成數(shù)字信息

    1. 網(wǎng)卡的MAC模塊將網(wǎng)絡(luò)包從信號(hào)還原成數(shù)字信息,校驗(yàn)FCS并存入緩沖區(qū)
    2. 網(wǎng)卡驅(qū)動(dòng)會(huì)根據(jù)MAC頭部判斷協(xié)議類型,并將包交給相應(yīng)的協(xié)議棧
  2. IP模塊的接收操作

    1. 協(xié)議棧的IP模塊會(huì)檢查IP頭部

      1. 判斷是不是發(fā)給自己的
      2. 判斷網(wǎng)絡(luò)包是否經(jīng)過(guò)分片
      3. 將包轉(zhuǎn)交給TCP模塊或者UDP模塊
  3. TCP模塊如何處理連接包

    1. 如果收到的是發(fā)起連接的包,TCP模塊

      1. 確認(rèn)TCP頭部的控制位SYN
      2. 檢查接收方端口號(hào)
      3. 為相應(yīng)的等待連接嵌套字復(fù)制一個(gè)新的副本
      4. 記錄發(fā)送方的IP地址和端口號(hào)等信息
  4. TCP模塊如何處理數(shù)據(jù)包

    1. 收到數(shù)據(jù)之后,TCP模塊

      1. 根據(jù)收到的包的發(fā)送方IP地址、發(fā)送方的端口號(hào)、接收方的IP地址和接收方的端口號(hào)找到對(duì)應(yīng)的嵌套字
      2. 將數(shù)據(jù)塊拼合并保存在接受緩沖區(qū)中
      3. 向客戶端返回ACK
  5. TCP模塊的斷開(kāi)操作

    1. 服務(wù)器調(diào)用Socket庫(kù)的close,生成一個(gè)控制位FIN為1 的TCP頭部

6.3web服務(wù)器程序解析請(qǐng)求消息并作出響應(yīng)

2020年5月5日

21:30

  1. 將請(qǐng)求的URI轉(zhuǎn)化為實(shí)際的文件名

    1. web服務(wù)器公開(kāi)的目錄其實(shí)并不是磁盤上的實(shí)際目錄,而是虛擬目錄
    2. URI中寫的就是虛擬目錄的路徑名
  2. 運(yùn)行CGI程序

    1. 訪問(wèn)的文件為程序文件,Web服務(wù)器會(huì)委托給操作系統(tǒng)運(yùn)行這個(gè)程序

      1. GET:將URI后面的參數(shù)傳遞給程序
      2. POST:將消息中的數(shù)據(jù)傳遞給程序
  3. web服務(wù)器的控制訪問(wèn)

    1. web服務(wù)器的控制訪問(wèn)規(guī)則

      1. 客戶端的IP地址
      2. 客戶端域名
      3. 用戶名和密碼
  4. 返回響應(yīng)消息

    1. web服務(wù)器調(diào)用Socket庫(kù)中write,將響應(yīng)消息交給協(xié)議棧

6.4瀏覽器接受響應(yīng)消息并顯示內(nèi)容

2020年5月5日

21:46

  1. 通過(guò)響應(yīng)數(shù)據(jù)類型并判斷其中的內(nèi)容

    1. 根據(jù)響應(yīng)消息開(kāi)頭的Content-Type頭部的值進(jìn)行判斷數(shù)據(jù)類型
    1. 消息的Content-Type定義數(shù)據(jù)類型

[圖片上傳失敗...(image-fb553c-1588686707760)]

?著作權(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ù)。

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