這是我參與8月更文挑戰的第9天,活動詳情查看:8月更文挑戰算法
一、HTTP1.0定義了三種請求方式:GET,POST,HEAD瀏覽器
二、HTTP2.0新增了五種請求方式:options,put,delete,trace和connect緩存
GET:一般用於請求服務器發送某些資源安全
POST:發送數據給服務器,相比GET更安全服務器
HEAD:請求資源頭部傳送的信息,能夠傳遞TOKEN或者判斷文件大小肯定是否下載markdown
OPTIONS:獲取目的資源所支持的通訊選項post
PUT:用於新增功能的請求,能夠有效負載替換目標資源的表現形式性能
DELETE:用於刪除功能的請求測試
Connect:HTTP1.1協議中預留給能將請求改成管道方式的代理服務器優化
Trace:回顯服務器收到的請求,用於測試或診斷
1)GET經過URL傳輸數據,POST經過請求體傳輸
2)GET請求在URL中能夠經過歷史記錄,緩存很容易查到數據信息;POST請求在主體中全部相比GET來講更安全一些。
3)GET請求只容許ASCII字符,POST無限制
4)刷新和後退等瀏覽器操做對GET請求是無害的,POST可能會重複提交表單
5)GET具備只讀性,不會引發服務器狀態的變化,而且是冪等(指請求同一個方法和只執行一次的效果徹底相同);而POST是非安全冪等的
1)PUT是冪等的,POST非冪等
2)PUT的請求路徑URL是單一的資源,POST能夠指向資源集合
一、請求行:請求方法字段、URL字段、HTTP協議版本字段,這些使用空格分隔
二、請求頭部:由關鍵字/值對組成,每行一對,
例如:User-Agent:產生請求的瀏覽器類型
Accept:客戶端可識別的內容類型列表
Host:請求的主機名,容許多個域名同處一個IP地址,即虛擬主機
三、空行
四、請求體:PUT或POST請求體的數據
一、響應行:由協議版本,狀態碼和狀態碼的緣由組成,例如:HTTP/1.1 200 OK
二、響應頭:響應部首組成
三、空行
四、響應體:服務器響應的數據
在HTTP1.0的時候每次請求都會建立一個鏈接,而建立鏈接會很耗費資源和時間,爲了減小資源消耗,就須要用複用鏈接。因此在後期引用了重用鏈接的機制,就是在HTTP請求頭中加入Connect: keep-alive來告訴服務器請求響應後不要關閉鏈接,從而保持長鏈接。
優勢:
一、不佔用CPU內存(由於建立鏈接次數少)
二、容許請求和響應的HTTP管線化
三、減小後續請求的延遲(無需再進行握手)
四、請求錯誤不會關閉TCP鏈接
五、下降擁塞控制
簡介:HTTPS是安全版本的HTTP,由於HTTP協議是明文傳輸,因此若是由敏感信息傳出就不安全,HTTPS則不會。
先說兩種加密方式:
一、對稱加密:通訊雙方都使用同一個密鑰進行加解密,可是沒法把首次的密鑰告訴對方,就會被黑客攔截密鑰
二、非對稱加密:私鑰+公鑰=密鑰對;使用私鑰加密的數據,只有對應的公鑰才能解密,用公鑰加密的時候,只有對應的私鑰才能解密;由於通訊雙方的手裏都有一套本身的密鑰對,因此能夠放心的把公鑰對發給對方,而後到各自解密的時候拿着本身的私鑰解密便可。
看了以上兩種加密方式,應該都能看出來非對稱加密比較安全,可是非對稱加密熟讀更慢,耗費性能。因此又進行的優化,能夠加入一箇中間人進行管理,把每次經過中間人把雙方通訊的公鑰換成本身的私鑰,這樣就能夠輕鬆解密通訊雙方的全部數據,因此就產生一個CA證書,用來證實身份,防止黑客攻擊;可是也爲了防止中間人篡改信息,又新增了數字簽名,就是用自帶Hash算法對證書內容進行Hash獲得摘要,再用私鑰解密獲得數字簽名。
證書內容:簽發者、證書用途、使用者私鑰、使用者公鑰、使用者的Hash算法、證書到期時間、數字簽名等,一般阿里雲和騰訊雲買域名的時候能夠買。
HTTP的知識真的好多,又能夠分好幾天寫啦,算了一下,天天都要寫兩個小時以上的文章,白天工做,晚上寫文章,加油。