網絡協議 概念

      網友投稿 605 2022-05-29

      ## 概念

      Hypertext Transfer Protocol, 超文本傳輸(轉移)協議,是客戶端和服務端傳輸文本制定的協議。構建WWW的具體的三項技術如下:

      WWW: world wide web, 萬維網

      - HTML: Hypertext Markup Language, 超文本標記語言

      - HTTP: Hypertext Transfer Protocol, 超文本傳輸(轉移)協議 (HTTP是TCP/IP的應用層協議)

      - URL: Uniform Resource Locator, 統一資源定位符號

      > URI: Uniform Resource Identitier, 統一資源標示符號,URL是URI的子集

      ## TCP/IP

      ```

      應用層(http/https/websocket/ftp...) => 定義:文本傳輸協議

      |

      傳輸層(tcp/udp) => 定義:端口

      |

      網絡層(ip) => 定義:IP

      |

      鏈路層(mac&數據包) => 定義:數據包,MAC地址

      |

      實體層(光纜/電纜/交換機/路由/終端...) => 定義:物理

      ```

      TCP/IP:

      - 解釋一:分別代表tcp協議和ip協議

      - 解釋二:如果按照網絡五層架構,TCP/IP代表除了應用層其他層所有協議簇的統稱

      TCP/IP connect: TCP/IP的三次握手:

      ```

      標有syn的數據包

      ------------->

      標有syn/ack的數據包

      client? <-------------? server

      標有ack的數據包

      -------------->

      網絡協議 概念

      ```

      TCP/IP finish: TCP/IP的四次握手:

      ```

      fin

      <-------------

      ack

      client(或server)??? -------------> server(或client)

      fin

      ------------->

      ack

      <-------------

      ```

      ## HTTP 報文

      HTTP 報文由三部分組成:

      - Start Line

      - Headers

      - Entity Body

      HTTP 報文分為兩類:

      - 請求報文

      - 響應報文

      ### 請求報文Start Line

      語法 : <方法> <請求URL> <版本>

      #### HTTP Method

      + get: 獲取資源,不攜帶http body,支持查詢參數,大小2KB

      + post: 傳輸資源,http body, 大小默認8M,1000個input variable

      + put: 傳輸資源,http body,資源更新

      + delete: 刪除資源,不攜帶http body

      + patch: 傳輸資源,http body,存在的資源局部更新

      + head: 獲取http header,不攜帶http body

      + options: 獲取支持的method,不攜帶http body

      + trace: 追蹤,返回請求回環信息,不攜帶http body

      + connect: 建立隧道通信

      ### 響應報文Start Line

      語法 : <方法> <狀態碼> <原因短語>

      #### HTTP Status Code

      + 200: ok

      + 301: 永久重定向

      + 302: 臨時重定向

      + 303: 臨時重定向,要求用get請求資源

      + 304: not modified, 返回緩存,和重定向無關

      + 307: 臨時重定向,嚴格不從post到get

      + 400: 參數錯誤

      + 401: 未通過http認證

      + 403: forbidden,未授權

      + 404: not found,不存在資源

      + 500: internet server error,代碼錯誤

      + 502: bad gateway,fastcgi返回的內容web server不明白

      + 503: service unavailable,服務不可用

      + 504: gateway timeout,fastcgi響應超時

      ### HTTP Header Fields

      常見通用頭部

      + Cache-Control:

      - no-cache: 不緩存過期的緩存

      - no-store: 不緩存

      + Pragma: no-cache, 不使用緩存,http1.1前的歷史字段

      + Connection:

      - 控制不在轉發給代理首部不字段

      - Keep-Alive/Close: 持久連接

      + Date: 創建http報文的日期

      常見請求頭

      + Accept: 可以處理的媒體類型和優先級

      + Host: 目標主機域名

      + Referer: 請求從哪發起的原始資源URI

      + User-Agent: 創建請求的用戶代理名稱

      + Cookie: cookie信息

      常見響應頭

      + Location: 重定向地址

      + Server: 被請求的服務web server的信息

      + Set-Cookie: 要設置的cookie信息

      - NAME: 要設置的鍵值對

      - expires: cookie過期時間

      - path: 指定發送cookie的目錄

      - domain: 指定發送cookie的域名

      - Secure: 指定之后只有https下才發送cookie

      - HostOnly: 指定之后javascript無法讀取cookie

      + Keep-Alive:

      HTTP協議初期每次連接結束后都會斷開TCP連接,之后HEADER的connection字段定義Keep-Alive(HTTP 1.1 默認 持久連接),代表如果連接雙方如果沒有一方主動斷開都不會斷開TCP連接,減少了每次建立HTTP連接時進行TCP連接的消耗。

      ## Cookie/Session

      + Cookie: 工作機制是用戶識別和狀態管理,服務端為了管理用戶的狀態會通過客戶端,把一些臨時的數據寫入到設備中Set-Cookie,當用戶訪問服務的時候,服務可以通過通信的方式取回之前存放的cookie。

      + Session: 由于http是無狀態的,請求之間無法維系上下文,所以就出現了session作為會話控制,服務端存放用戶的會話信息。

      ## HTTPs

      概念:在http協議上增加了ssl(secure socket layer)層。

      ```

      SSL層

      |

      應用層

      |

      傳輸層

      |

      網絡層

      |

      鏈路層

      |

      實體層

      ```

      HTTPS 認證流程

      ```

      發起請求

      --------------------------->  server

      下發證書

      <---------------------------?? server

      證書數字簽名(用證書機構公鑰加密)

      --------------------------->  證書機構

      證書數字簽名驗證通過

      client(內置證書機構證書) <---------------------------?? 證書機構

      公鑰加密隨機密碼串(未來的共享秘鑰)

      --------------------------->  server私鑰解密(非對稱加密)

      SSL協議結束 HTTP協議開始

      <---------------------------?? server(對稱加密)

      共享秘鑰加密 HTTP

      --------------------------->  server(對稱加密)

      ```

      + 核對證書證書: 證書機構的公開秘鑰驗證證書的數字簽名

      + 公開密鑰加密建立連接:非對稱加密

      + 共享密鑰加密

      ## Websocket

      + 基于http協議建立連接,header的upgrade字段轉化協議為websocket

      + 全雙工通信,客戶端建立連接

      ## HTTP2

      + 多路復用:多個請求共享一個tcp連接

      + 全雙工通信

      + 必須https://

      + 頭部壓縮

      + 二進制傳輸

      TCP/IP 網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:淺談&nbsp;C/S&nbsp;和&nbsp;B/S&nbsp;架構
      下一篇:創建線程的其他知識點
      相關文章
      亚洲av日韩av不卡在线观看| 亚洲人成人无码网www国产| 亚洲AV成人潮喷综合网| 精品亚洲一区二区三区在线观看| 久久亚洲精品成人777大小说| 国产精品亚洲w码日韩中文| 日韩成人精品日本亚洲| 亚洲日本va一区二区三区 | 亚洲一区爱区精品无码| 亚洲欧洲精品成人久久曰影片| 亚洲成a人片在线观看中文!!! | 亚洲欧美第一成人网站7777| 亚洲一区中文字幕在线电影网| 久久精品国产亚洲AV果冻传媒| 人人狠狠综合久久亚洲88| 中文字幕亚洲电影| 国产亚洲情侣一区二区无码AV| 狠狠色婷婷狠狠狠亚洲综合| 无码国产亚洲日韩国精品视频一区二区三区 | 久久精品国产亚洲网站| 国产成A人亚洲精V品无码 | 亚洲AV乱码久久精品蜜桃| 亚洲色偷偷偷鲁综合| 亚洲va久久久噜噜噜久久天堂| 久久精品国产96精品亚洲| 国产精品亚洲天堂| avtt亚洲天堂| 国产成人精品日本亚洲18图| 久久精品亚洲综合专区| 久久亚洲AV无码精品色午夜| 亚洲国产成a人v在线| 国产日韩亚洲大尺度高清| 亚洲AV无码乱码在线观看裸奔| 亚洲免费视频网站| 亚洲国产成人在线视频| 国产亚洲精品bv在线观看| 亚洲AV日韩综合一区| 亚洲国产综合无码一区二区二三区| 国产成人综合亚洲绿色| 亚洲日本在线观看视频| 亚洲综合无码AV一区二区|