《圖解HTTP》讀書筆記

1、第一章 瞭解Web及網絡基礎數據庫

  1.HTTP歷史:瀏覽器

    1)HTTP/0.9:HTTP於1990問世,當時標準未被正式創建,因此HTTP/1.0以前的版本,統稱爲HTTP/0.9緩存

    2)HTTP/1.0:1996年5月公佈,記錄於RFC1945,沿用至今安全

    3)HTTP/1.1:1997年1月公佈,記錄於RFC2616,目前主流版本服務器

    4)HTTP/2.0:正在制定中網絡

    ps.RFC(Request for Comments),徵求修改意見,制定HTTP協議技術標準的文檔,不含Cooike分佈式

  2.TCP/IP協議族:互聯網鏈接協議(protocol),子集有:HTTP、TCP、IP、FTP、PPPoE、FTP等ide

  3.TCP/IP四層模型:函數

    1)應用層:FTP、DNS、HTTP編碼

    2)傳輸層:TCP、UDP

    3)網絡層:IP

    4)鏈路層:操做系統、硬件驅動、網卡、光纖、硬件部分

    PS.通過每層時會打上該層的首部信息,接收時去除

  4.ARP協議:HTTP在網絡傳輸時,經過ARP協議就能夠解析目標地址,可是過程沒法全面掌握,經過路由選擇。

  5.三次握手:發送SYN的flag->收到請求後回傳一個帶有SYN/ACK的flag->最後回傳一個帶有ACK的flag

  6.URL是URI的子集,URI包含:Uniform(如http:或ftp:)、Resource(可標示的任何東西)、Identifier(標識符)

 

2、簡單的HTTP協議

  1.HTTP中可使用的方法:GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT

  2.持久鏈接:HTTP/1.1中,全部的鏈接默認都是持久鏈接

  3.使用Cooike的狀態管理

 

3、HTTP報文內的HTTP信息

  1.HTTP報文自己是由多行(用CR+LF做換行符\r\n)

  2.HTTP首部內容:請求行、狀態行、首部字段、其它

  3.報文的內容編碼格式有:gzip(GUN zip)、compress(UNIX系統的標準壓縮)、deflate(zlib)、identity(不進行編碼)

  4.分割發送的分塊傳輸編碼:用於把實體主體分紅多塊發送,能夠在通訊時使用某種傳輸編碼(Transfer Coding)

  5.多部分對象集合(Multipart):Content-Type:multipart/form-data[multipart/form-byteranges],使用boundarg字符串來劃分每一個部分(參見P4七、P48)

  6.獲取部份內容的範圍請求:Range:bytes=5001-10000,響應返回206 Partical Content的響應報文

  7.內容協商Content Negotiation:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language

 

4、返回結果的HTTP狀態碼

  1.類型簡介:

    1XX:信息性狀態碼,接受的請求正在處理

    2XX:成功狀態碼

      204:No Content,請求處理成功,可是沒有資源可返回

      206:Partial Content,客戶端進行範圍請求,服務器成功執行了這部分的GET請求

    3XX:重定向狀態碼

      301:Move Permanently:URL已更新(永久性的),須要進行書籤引用的變動

      302:Found,和301相似,可是是臨時性的,不須要對書籤進行更新

      303:See Other,使用GET方法重定向到新的URL上。即便是POST方法訪問,也只使用GET方法來作重定向,是和302方法的區別

      304:Not Modified,發送附帶條件的請求時,若是發生服務器未知足條件的狀況,則返回此狀態

      307:Temporary Redirect:和302相似,可是不會從POST變成GET

    4XX:客戶端錯誤狀態碼,服務器端沒法處理請求

      400:報文存在語法錯誤,服務器沒法理解。瀏覽器會像對待200 OK同樣對待該狀態碼

      401:Unauthorized,須要認證

      403:Forbidden,不容許訪問資源,能夠在返回主體裏描述緣由

      404:Not Found,服務器資源未找到,也能夠在服務器拒絕請求且不想說明緣由時使用

    5XX:服務器錯誤狀態碼,服務器處理請求出錯

      500: Internal Server Error:服務器在執行請求時出錯了

      503:Service  Unavailable:服務器超負荷或者在進行停機維護

 

5、與HTTP協做的WEB服務器

  1.通訊數據轉發程序:

    1)代理:緩存代理、透明代理(非透明代理)

    2)網關:和代理相似,可是能夠提供非HTTP協議服務器,如鏈接數據庫、信用卡結算系統等

    3)隧道:按要求創建一條與其餘服務器的通訊線路,使用SSL等加密手段

 

6、HTTP首部

  1.HTTP首部字段類型:(書中有詳細說明)

    1)通用首部字段

 

    2)請求首部字段

    3)響應首部字段

    4)實體首部字段

    5)非HTTP/1.1首部字段:不在RFC2616中,而是在RFC4229中的47種首部字段,包括Cookie等

 

7、確保Web安全的HTTPS

  1.HTTPS=HTTP+加密+認證+完整性保護

 

8、確認訪問用戶身份的認證

  1.HTTP使用的認證方式:

    1)BASIC認證(基本認證)

    2)DIGEST認證(摘要認證)

    3)SSL客戶端認證

    4)FormBase認證(基於表單認證)

  2.一般,一種安全的保存密碼的方式是,先給密碼加鹽,再使用散列(hash)函數計算出散列值後保存

 

9、基於HTTP的功能追加協議

  1.爲了消除HTTP的瓶頸,出現的解決方案:Ajax、Comet、SPDY(開發中)、WebSocket(HTML5)、HTTP/2.0(制定中)

  2.WebDAV:是一個可對Web服務器上的內容直接進行文件複製、編輯等操做的分佈式文件系統。它做爲HTTP/1.1的協議定義在RFC4918中

 

10、構建Web內容的技術(略)

 

11、Web的攻擊技術

  1.因輸出值轉義不徹底引起的安全漏洞:

    1)跨站腳本攻擊(XSS)

    2)SQL注入攻擊

    3)OS命令注入攻擊

    4)HTTP首部注入攻擊

    5)郵件首部注入攻擊

    6)目錄遍歷攻擊

    7)遠程文件包含漏洞

  2.因設置或設計上的缺陷引起的安全漏洞

    1)強制瀏覽

    2)不正確的錯誤信息處理

    3)開放重定向

  3.因會發管理疏忽引起的安全漏洞

    1)會話劫持

    2) 會話固定攻擊  

    3)跨站點請求僞造(CSRF)

  4.其它安全漏洞

    1)密碼破解

    2)點擊劫持

    3)DoS攻擊

    4)後門程序

相關文章
相關標籤/搜索