【八股】HTTP

瀏覽器輸入URL之后發生的過程

  1. 瀏覽器解析URL中的協議,主機,端口,路徑參數等
  2. DNS域名解析得到對應的IP地址
  3. 通過IP和PORT對服務器發送TCP三次握手建立連接
  4. 瀏覽器發送請求
  5. 服務器接受請求,處理并響應
  6. 瀏覽器得到HTTP響應,對響應報文指定的格式進行渲染
  7. 瀏覽器和服務器四次揮手斷開連接

DNS解析過程(全稱為域名系統(Domain Name System))

  1. 瀏覽器緩存
  2. host文件(/etc/hosts目錄下)

    如下
    127.0.0.1 ? ? ? localhost
    ::1 ? ? ? ? ? ? localhost

    # 將 example.com 指向本地回環地址
    127.0.0.1 ? ? ? example.com

  3. 本地DNS服務器(如:中國移動)

  4. 根域名服務器===》頂級域名服務器(如.com? .net? ?.cn)

  5. 頂級域名服務器==》權威域名服務器(如:baidu.com)

  6. 權威域名服務器==》IP地址

HTTP版本

1、0.9:

  • 無報頭,只支持GET方法,響應只能是HTML

2、1.0

  • 有報頭,支持GET,POST等多種方法,支持多種狀態碼
  • 不支持長連接

3、1.1

  • 長連接
  • 管道網絡通信(服務器必須按照發送順序處理,造成隊頭阻塞

缺點:

  • 隊頭阻塞
  • 頭部冗余(http2解決)
  • 無請求級別
  • 請求響應一對一,服務器被動(http2解決)

4、2.0

  • 二進制數據傳輸
  • stream并發傳輸(亂序發送,在客戶端通過ID組裝)
  • 頭部壓縮
  • 一個請求可對應多個響應(服務器推送)

基于TCP連接的缺點:

  • 隊頭阻塞(TCP連接)
  • TCP和TLS的握手延遲
  • 網絡遷移重連

5、3.0

使用QUIC協議解決TCP的缺點

HTTPS的執行流程

  1. 客戶端發送加密請求
  2. 服務器產生一對公鑰和私鑰,將自己的公鑰發給CA證書機構,CA機關使用自己的私鑰加密,產生CA證書
  3. 服務端響應客戶端請求,發送CA機關的數字證書給客戶端
  4. 客戶端解析數字證書(瀏覽器保存有CA機關公鑰),驗證是否合法
  5. 客戶端隨機生成一個數給服務端Key
  6. 客戶端對Key使用服務端的公鑰加密,發送給服務端作為對稱加密的密鑰
  7. 服務端對收到的請求使用自己的私鑰解析,得到對稱加密的密鑰
  8. 之后服務端和客戶端之間通過Key加密通信

中間人攻擊

  1. 客戶端發送加密請求

  2. 中間人捕獲請求,將請求轉發給服務器

  3. 中間人得到服務器的公鑰,自己生成一對公鑰和私鑰,將自己的公鑰發送給客戶端

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62457.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

torch.optim.lr_scheduler.ReduceLROnPlateau

torch.optim.lr_scheduler.ReduceLROnPlateau 是 PyTorch 中的一種學習率調度器,主要用于在模型訓練過程中根據某些指標(如驗證損失)動態調整學習率。它是一種基于性能指標動態調整學習率的策略,而不是預定義的固定時間調整。 主要…

ubuntu下的chattts 學習6:音色固定的學習

魔搭社區 該區提供了隨機種子級音樂的試聽與下載。 spk torch.load(<PT-FILE-PATH>) params_infer_code {spk_emb: spk, } 略 測試過程&#xff1a; 1.先建一個文件夾&#xff1a;然后從上面的網站上下載了兩個。放在里面測試 2 2.測試代碼 import ChatTTS impo…

數據集的重要性:如何構建AIGC訓練集

文章目錄 一、為什么數據集對AIGC如此重要&#xff1f;1. 數據決定模型的知識邊界2. 數據質量直接影響生成效果3. 數據集多樣性提升模型魯棒性 二、構建AIGC訓練集的關鍵步驟1. 明確目標任務和生成需求2. 數據源的選擇3. 數據清洗與預處理4. 數據標注5. 數據增強 三、針對不同類…

47 基于單片機的書庫環境監測

目錄 一、主要功能 二、硬件資源 三、程序編程 四、實現現象 一、主要功能 基于51單片機&#xff0c;采用DHT11濕度傳感器檢測濕度&#xff0c;DS18B20溫度傳感器檢測溫度&#xff0c; 采用滑動變阻器連接數模轉換器模擬二氧化碳和氧氣濃度檢測&#xff0c;各項數值通過lc…

【操作系統】每日 3 題(五十五)

?個人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;專欄地址&#xff1a;https://blog.csdn.net/newin2020/category_12820365.html &#x1f4da;專欄簡介&#xff1a;在這個專欄中&#xff0c;我將會分享操作系統面試中常見的面試題給大家~ ??…

服務器加固

1.服務器密碼復雜度 密碼最小長度&#xff0c;密碼復雜度策略 vim /etc/pam.d/system-auth --------------- #密碼配置 #ucredit&#xff1a;大寫字母個數&#xff1b;lcredit&#xff1a;小寫字母個數&#xff1b;dcredit&#xff1a;數字個數&#xff1b;ocredit&#xff1a;…

spring boot 同一個redis 操作不同的庫

1.下面是在Spring Boot中配置多個Redis數據庫的幾種方式&#xff1a; 1.1 配置如下# application.yml spring:redis:host: localhostport: 6379password: your_password# 連接池配置lettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: -1mstimeout: 5000ms# 多個數據…

C語言面試題/筆試題/高頻面試題_2

9. 全局變量和局部變量的區別 定義&#xff1a;全局變量是定義在函數外部的變量&#xff0c;局部變量是定義在 函數內部的變量 存儲位置&#xff1a;全局變量存儲在全局區&#xff0c;局部變量存儲在棧區 作用域&#xff1a;全局變量可以在程序任意位置使用&#xff0c;局部變量…

Brain.js(八):RNNTimeStep 實戰教程 - 股票價格預測 - 實操需警慎

前置聲明&#xff0c;個人淺度炒股&#xff0c;但計劃將基金轉入股市。然后 股市有風險&#xff0c;不是技術可以完全預測的&#xff0c;但是在無頭緒的時候&#xff0c;用技術指標做個參考也不錯。 本文涉及到的股票預測&#xff0c;只是代碼簡單示例&#xff0c;實操需警慎&a…

MySQL | 尚硅谷 | 第13章_約束

MySQL筆記&#xff1a;第13章_約束 文章目錄 MySQL筆記&#xff1a;第13章_約束第13章_約束 1. 約束(constraint)概述1.1 為什么需要約束1.2 什么是約束1.3 約束的分類演示代碼 2. 非空約束2.1 作用2.2 關鍵字2.3 特點2.4 添加非空約束2.5 刪除非空約束演示代碼 3. 唯一性約束3…

《計算機網絡》(408大題)

2009 路由轉發和靜態路由的計算 子網劃分、路由聚合的計算 注&#xff1a;CIDR中的子網號可以全為0或1&#xff0c;但是其主機號不允許。 注&#xff1a; 這里其實是把到互聯網的路由當做了一個默認路由&#xff08;當一個目的網絡地址與路由表中其他都不匹配時&#xff0c;…

NanoLog起步筆記-6-StaticLogInfo

nonolog起步筆記-6-StaticLogInfo StaticLogInfo文件名和行號文件名和行號的傳入log參數 RuntimeLogger::registerInvocationSitelogid為什么只能被賦一次值 reserveAlloc加入消息頭finishAlloc返回 StaticLogInfo 寫C語言編譯前端時&#xff0c;給我印象深刻的一部分是&#…

軟件工程 概述

軟件 不僅僅是一個程序代碼。程序是一個可執行的代碼&#xff0c;它提供了一些計算的目的。 軟件被認為是集合可執行的程序代碼&#xff0c;相關庫和文檔的軟件。當滿足一個特定的要求&#xff0c;就被稱為軟件產品。 工程 是所有有關開發的產品&#xff0c;使用良好定義的&…

Sui 集成 Phantom,生態迎來全新里程碑

作為領先的非托管多鏈加密&#x1f45b;&#xff0c;Phantom 宣布將支持 Sui 區塊鏈。Sui 將加入 Solana、Bitcoin 和 Ethereum 隊伍&#xff0c;成為該 wallet 支持的少數 L1 區塊鏈之一。 此次集成也大幅提升了 Phantom 的互操作性&#xff0c;同時表明 wallet 提供商和應用…

目標跟蹤領域經典論文解析

親愛的小伙伴們&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你對深度學習的奧秘、JAVA 、PYTHON與SAP 的奇妙世界&#xff0c;亦或是讀研論文的撰寫攻略有所探尋&#x1f9d0;&#xff0c;那不妨給我一個小小的關注吧&#x1f970;。我會精心籌備&#xff0c;在…

如何解決 java.nio.charset.CoderMalfunctionError: 編碼器故障錯誤問題?親測有效的解決方法!

java.nio.charset.CoderMalfunctionError 是一個在 Java 中相對較少遇到的異常&#xff0c;通常與字符編碼轉換過程中的錯誤有關。當 Java 程序在進行字符編碼轉換時&#xff0c;遇到無法處理的字符或編碼故障時&#xff0c;就會拋出該異常。 1. 問題描述 java.nio.charset.C…

低級爬蟲實現-記錄HCIP云架構考試

因工作需要考HCIP云架構&#xff08;HCIP-Cloud Service Solution Architect&#xff09;證書, 特意在淘寶上買了題庫&#xff0c; 考過了。 事后得知自己被坑了&#xff0c; 多花了幾十大洋。 所以想著在授權期內將題庫“爬”下來&#xff0c; 共享給大家。 因為整個過程蠻有…

QGroundControl之5-AppSettings.cc

介紹 應用程序設置 Application Settings &#xff0c;這里看下語言選擇功能&#xff0c;它是怎么和json文件關聯起來的&#xff0c;剛剛看的時候&#xff0c;很是奇怪這么多的json文件作用。 1.AppSettings.cc 文件怎么和App.SettingsGroup.json關聯 在AppSettings.cc文件沒…

jenkins郵件的配置詳解

Jenkins郵件的配置涉及多個步驟和細節,以下是詳細的配置指南: 一、前期準備 確定郵件服務:明確Jenkins將要使用的郵件服務,如QQ郵箱、163郵箱、公司郵箱(基于Microsoft 365或Exchange Server)等。獲取SMTP配置信息:根據郵件服務類型,獲取相應的SMTP服務器地址、端口號…

【ArcGIS微課1000例】0134:ArcGIS Earth實現二維建筑物的三維完美顯示

文章目錄 一、加載數據二、三維顯示三、三維符號化一、加載數據 加載配套實驗數據(0134.rar中的建筑物,2d或3d都可以),方法如下:點擊添加按鈕。 點擊【Add Files】,在彈出的Open對話框中,選擇建筑物,點擊確定,完成添加。 默認二維顯示: 二、三維顯示 右鍵建筑物圖層…