1.http請求的過程
以瀏覽器訪問乙個**為例,從使用者輸入 url 開始,客戶端通過 dns 解析查詢到目標伺服器的 ip 位址,然後與之建立 tcp 連線,連線成功後,瀏覽器構造乙個 http 請求傳送給伺服器,伺服器收到請求之後,從資料庫查到相應的資料並封裝成乙個 http 響應,然後將響應結果返回給瀏覽器,瀏覽器對響應內容進行資料解析、提取、渲染並最終展示在你面前。
2.http請求格式
http請求包括請求行,請求頭,請求體三部分組成
a.請求行
post /accounts/login http/1.1 分別表示請求方法,客戶端獲取資源的路徑,http協議版本號
ps:常見的請求方法:get,post,put,delete,head
b.請求頭
常見的請求頭報文屬性(報文屬性是指協助客戶端和服務端完成通訊的附屬資訊)
<1> accept:accept:text/plain
告訴服務端,客戶端能夠接受的響應型別僅為純文字資料,accept屬性的值可以為乙個或多個mime型別的值
<2>cookie:$version=1; skin=new;jsessionid=5f4771183629c9834f8382e23be13c4c
服務端是怎麼知道客戶端的多個請求是隸屬於乙個session呢?注意到後台的那個jsessionid=5f4771183629c9834f8382e23be13c4c木有?原來就是通過http請求報文頭的cookie屬性的jsessionid的值關聯起來的
表示此url是從哪個url鏈結過來的
<4>cache-control: no-cache
相當於讓服務端將對應請求返回的響應內容不要在客戶端快取
說明客戶端的身份
c.請求體
請求體一般是客戶端向服務端提交的資料,get請求沒有請求體
3.http響應格式
http 響應格式與請求的格式很相似,也是由響應行、響應頭、響應體組成
a.響應行
響應行也包含三部分,分別是服務端的 http 版本號、響應狀態碼、狀態說明,響應狀態碼常見有 200、400、404、500、502、304 等等,一般以 2 開頭的表示伺服器正常響應了客戶端請求,4 開頭表示客戶端的請求有問題,5 開頭表示伺服器出錯了,沒法正確處理客戶端請求
b.響應頭
響應頭和請求頭是對應的,是伺服器對該響應的一些附加說明
c.相應體
真正的響應資料,其實就是網頁的html源**或者是響應的json資料
http協議書籍推薦:《**http》 《http權威指南》4.https協議
a.用對稱加密的形式對資料進行加密
在每次傳送真實資料之前,伺服器先生成一把金鑰,然後先把金鑰傳輸給客戶端。之後伺服器給客戶端傳送真實資料的時候,會用這把金鑰對資料進行加密,客戶端收到加密資料之後,用剛才收到的金鑰進行解密
那萬一金鑰在傳輸的過程中被別人擷取了怎麼吧? 例如:
假如伺服器用明文的方式傳輸金鑰給客戶端,然後金鑰被中間人給捕獲了,那麼在之後伺服器和客戶端的加密傳輸過程中,中間人也可以用他捕獲的金鑰進行解密。這樣的話,加密的資料在中間人看來和明文沒啥兩樣。
b.非對稱加密
讓客戶端和伺服器都擁有兩把鑰匙,一把鑰匙是公開的(全世界知道都沒關係),我們稱之為公鑰;另一把鑰匙則是保密的(只有自己本人才知道),我們稱之為私鑰。這且,用公鑰加密的資料,只有對應的私鑰才能解密;用私鑰加密的資料,只有對應的公鑰才能解密
這樣,伺服器在給客戶端傳輸資料的過程中,可以用客戶端明文給他的公鑰進行加密,然後客戶端收到後,再用自己的私鑰進行解密。客戶端給伺服器傳送資料的時候也一樣採取這樣的方式。這樣就能保持資料的安全傳輸了
c.對稱加密和非對稱加密的區別
非對稱加密在加密的時候會非常慢,比堆成加密慢上上百倍,對稱加密不安全是因為金鑰無法安全交給客戶端
http https協議備忘
http hypertext transfer protocol,超文字傳輸協議 基於tcp連線 url uniform resource locator,統一資源定位符 用於指明網路資源的位址 http報文型別分為請求報文和響應報文 http請求報文由客戶端向服務端傳送 http請求報文由三部分組...
http,https協議解析
超文字傳輸協議 hypertext transfer protocol,http http預設使用80埠,https預設使用443埠.序號 組成部分描述1 請求行描述客戶端的請求方式 get,post 請求資源名稱 http協議版本號 2請求頭 客戶端請求的伺服器主機名,客戶端機器環境資訊3空行 換...
http https 協議(概略)
1.0 協議缺陷 法復 鏈結,完成即斷開,重新慢啟動和 tcp 3 次握 head of line blocking 線頭阻塞,導致請求之間互相影響 1.1 改進 連線 預設 keep alive 復 host 字段指定對應的虛擬站點 新增功能 斷點續傳 身份認證 狀態管理 cache 快取 cac...