《圖解http》筆記

呵呵,天知道我為什么要寫這個(gè)。

  • Http基礎(chǔ)

    • 簡述

      http協(xié)議(超文本傳輸協(xié)議)為了Web上的信息共享而誕生

      三個(gè)版本:0.9; 1.0; 1.1

    • 網(wǎng)絡(luò)基礎(chǔ)

      建立在TCP/IP協(xié)議族的基礎(chǔ)之上

      • TCP/IP協(xié)議族

        1. 應(yīng)用層:決定了向用戶提供應(yīng)用服務(wù)時(shí)的通信活動(dòng),如FTP,DNS和HTTP等;

        2. 傳輸層:提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸,TCP,UDP;

        3. 網(wǎng)絡(luò)層:用來處理網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包,IP協(xié)議;

        4. 鏈路層:網(wǎng)絡(luò)連接的硬件部分。

        數(shù)據(jù)在各層中封裝后進(jìn)行傳輸

        1.PNG
        2.PNG
      • IP協(xié)議

        IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給接收方,其中IP地址和MAC地址用于確定接收方的位置。IP地址可以通過ARP協(xié)議(Adress Resolution Protocol) 反查出對(duì)應(yīng)的MAC地址

        3.PNG
      • TCP協(xié)議

        TCP協(xié)議能夠?qū)?shù)據(jù)準(zhǔn)確可靠地傳輸給接收方,(三次握手)。

        4.PNG
      • DNS服務(wù)

        DNS服務(wù)位于應(yīng)用層。它提供域名到IP地址之間的解析服務(wù)

        域名易于人類理解,IP地址易于計(jì)算機(jī)理解

        5.PNG
    • 簡單結(jié)構(gòu)

      http協(xié)議用于客戶端與服務(wù)端之間的通信,切為無狀態(tài)協(xié)議。

      通過URI(Uniform Resource Identifier 統(tǒng)一資源標(biāo)志符)定位請(qǐng)求資源,url是URL的一個(gè)自己

      http方法,常用 post,get

      6.PNG

      一個(gè)頁面一般會(huì)存在很多資源請(qǐng)求,如圖片,腳本等資源。每一個(gè)請(qǐng)求都進(jìn)行打開關(guān)閉TCP連接操作,增加了通信的開銷,頁面的加載速度也會(huì)變慢。因此,http中又有了持久連接的機(jī)制。建立一次連接后可進(jìn)行多次客戶端與服務(wù)端之間的交互,直到其中一方明確表示需要斷開連接。

      7.PNG
      8.PNG

      在持久連接基礎(chǔ)上可以實(shí)現(xiàn)管線化,可以同時(shí)發(fā)送多個(gè)請(qǐng)求。

      9.PNG

      http協(xié)議的無狀態(tài)特性可以減少服務(wù)器的CPU以及內(nèi)存資源的消耗,卻也因此無法對(duì)用戶進(jìn)行認(rèn)證。所以就有了Cookie來管理狀態(tài),將消耗分擔(dān)到了每個(gè)客戶端。

  • HTTP信息

    • 報(bào)文信息

      客戶端的Htpp報(bào)文叫做請(qǐng)求報(bào)文,服務(wù)器端的Http報(bào)文叫響應(yīng)報(bào)文,報(bào)文使用CR+LF作為換行符

      報(bào)文分為報(bào)文首部和報(bào)文主體,報(bào)文首部一般有四種:通用首部,請(qǐng)求首部,響應(yīng)首部和實(shí)體首部;在客戶端與服務(wù)器之間進(jìn)行通信過程中,無論是請(qǐng)求首部還是響應(yīng)首部都能起到傳遞額外重要信息的作用,如報(bào)文主體大小,所使用的的語言和認(rèn)證信息等等

      10.PNG
      11.PNG
      16.PNG
      • 通用字段

        1. Cache-Control:用于操作緩存的工作機(jī)制,如緩存時(shí)間,是否必須向服務(wù)器確認(rèn)等

        2. Connection:控制不再轉(zhuǎn)發(fā)給代理的首部字段和持久連接,http1.1版本默認(rèn)的連接都是持久連接

        3. Date:表明創(chuàng)建Http報(bào)文的日期和時(shí)間

        4. Transfer-Encoding:規(guī)定傳輸報(bào)文主體時(shí)采用的編碼方式

      • 請(qǐng)求首部

        1. Accept:通知服務(wù)器客戶端可以處理的媒體類型以及媒體類型的相對(duì)優(yōu)先級(jí),如 application/json,text/html,image/jpeg等。優(yōu)先級(jí)使用q=來表示權(quán)重,最大值為1,默認(rèn)權(quán)重為1.0

        2. Accept-Language:通知服務(wù)器客戶端可以處理的語言集以及相對(duì)優(yōu)先級(jí)

        3. Authorization:用于高速服務(wù)區(qū)客戶端的認(rèn)證信息。通常在接收到服務(wù)器返回的401狀態(tài)碼后,客戶端將Authorization加入請(qǐng)求中

        4. Host:http1.1規(guī)范中唯一一個(gè)必須包含在請(qǐng)求內(nèi)的首部字段,可為空

        5. User-Agent:創(chuàng)建請(qǐng)求的瀏覽器名稱等信息

      • 響應(yīng)首部

        1. Location:提供重定向的資源地址

        2. Server:服務(wù)器上安裝的http服務(wù)器應(yīng)程序信息

      • 為Cookie服務(wù)的首部字段

        1. Set-Cookie:開始狀態(tài)管理所使用的Cookie信息(響應(yīng)首部),管理服務(wù)器端設(shè)置的cookie信息,如expires過期時(shí)間,domain所屬域名和httponly等

        2. Cookie:服務(wù)器端收到的Cookie信息(請(qǐng)求首部

    • 狀態(tài)碼

      狀態(tài)碼用于描述服務(wù)器端返回的請(qǐng)求結(jié)果狀態(tài),是正常,錯(cuò)誤還是其他。

      12.PNG
      1. 200(ok):服務(wù)器正常處理了請(qǐng)求

      2. 304(Not Modified):資源未發(fā)生變動(dòng),一般瀏覽器會(huì)使用已經(jīng)緩存過的資源

      3. 401(UNauthorized):第一次返回表示需要認(rèn)證,第二次則是表示認(rèn)證失敗

      4. 403(Forbidden):請(qǐng)求資源的訪問被服務(wù)器拒絕

      5. 404(Not Found):服務(wù)器上不存在請(qǐng)求的資源

      6. 500(Internal Server Error):服務(wù)器內(nèi)部錯(cuò)誤

  • HTTP與Web

    • Web服務(wù)器

      一般,在互聯(lián)網(wǎng)上域名通過DNS服務(wù)器域名解析后映射到IP地址再訪問目標(biāo)網(wǎng)站

      由于虛擬主機(jī)的功能,在相同的IP地址下可以部署多個(gè)不同域名的Web站點(diǎn),因此在發(fā)送HTTP請(qǐng)求時(shí)必須在Host首部內(nèi)完善域名

      • 通信數(shù)據(jù)的轉(zhuǎn)發(fā)

        1. 代理:扮演位于服務(wù)器與客戶端中間人的角色,它接受客戶端的請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器,同時(shí)也接受服務(wù)器的返回結(jié)果并轉(zhuǎn)發(fā)給客戶端
        13.PNG

        緩存代理:預(yù)先將服務(wù)器上的資源副本緩存在代理服務(wù)器上,當(dāng)客戶端對(duì)這些已經(jīng)緩存過了的資源發(fā)出請(qǐng)求時(shí),代理不會(huì)對(duì)服務(wù)器發(fā)出請(qǐng)求,而是直接返回緩存的資源

        1. 網(wǎng)關(guān):接收客戶端發(fā)送過來的請(qǐng)求,并自行進(jìn)行處理,利用網(wǎng)關(guān)可以將http請(qǐng)求轉(zhuǎn)化為飛http請(qǐng)求,可以提高通信的安全性
        14.PNG
        1. 隧道:用于保持客戶端與服務(wù)器端通信連接的應(yīng)用程序,會(huì)使用SSL等加密手段進(jìn)行通信,用于保證客戶端與服務(wù)器之間通信的安全
        15.PNG
    • HTTPS

      • HTTP的缺點(diǎn)

        1. 通信使用明文,可能會(huì)被竊聽

        2. 不會(huì)驗(yàn)證通信方的身份,可能遭遇偽裝

        3. 無法證明報(bào)文的完整性,可能遭到篡改

      用SSL將通信的報(bào)文主體內(nèi)容進(jìn)行加密,使用SSL建立http的安全通信線路,SSL處于http與TCP通信之間,這樣的SSL與HTTP組合被稱為HTTPS

      17.PNG

      使用第三方證書來驗(yàn)證通信雙方身份

      18.PNG

      HTTPS由于存在SSL加密,必不可免的會(huì)使處理速度會(huì)變慢

    • Web構(gòu)建

      html,css和控制DOM來改變html元素的JavaScript

      -》html5 ,vuejs,angularjs等等

      數(shù)據(jù)格式:xml,json

    • Web安全

      • Web攻擊技術(shù)

        1. SQL注入

          欺騙服務(wù)器執(zhí)行惡意的SQL命令

        2. XSS(跨站腳本攻擊

          黑客在HTML頁面內(nèi)注入惡意腳本,當(dāng)其他用戶瀏覽該網(wǎng)頁時(shí),惡意腳本被執(zhí)行

        3. 會(huì)話劫持

        4. CSRF(跨站請(qǐng)求偽造

          黑客在HTML頁面內(nèi)注入惡意腳本,當(dāng)其他用戶瀏覽該網(wǎng)頁時(shí),在不通知用戶的情況下對(duì)其他站點(diǎn)發(fā)送請(qǐng)求

        5. 點(diǎn)擊劫持

          用一個(gè)透明的域覆蓋在網(wǎng)頁某個(gè)位置上,當(dāng)用戶點(diǎn)擊該位置時(shí),觸發(fā)腳本

        6. DDoS(分布式拒絕服務(wù)

  • Q&A

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個(gè)子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,621評(píng)論 0 20
  • 第一章:Web及網(wǎng)絡(luò)基礎(chǔ) TCP/IP是互聯(lián)網(wǎng)相關(guān)的各類協(xié)議族的總稱,包含TCP、UDP、HTTP、FTP、IP、...
    loneyzhou閱讀 461評(píng)論 0 1
  • 第一章 IP協(xié)議 ip協(xié)議里重要的是IP地址和MAC地址 使用 ARP 協(xié)議憑借 MAC 地址進(jìn)行通信 “(Add...
    杰米閱讀 936評(píng)論 0 1
  • 本篇文章篇幅比較長,先來個(gè)思維導(dǎo)圖預(yù)覽一下。 一、概述 1.計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分層 2.TCP/IP 通信傳輸流 ...
    滌生_Woo閱讀 56,230評(píng)論 24 557
  • 本文是《圖解HTTP》讀書筆記的第二篇,主要包括此書的第六章內(nèi)容,因?yàn)榈诹碌膬?nèi)容較多,而且比較重要,所以單獨(dú)寫為...
    lijiankun24閱讀 1,505評(píng)論 0 6

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