關(guān)于HTTP的知識分飞,七七八八也了解過一些悴务,總覺得很零散。
如果去翻看三卷本的TCP/IP的話譬猫,倒是大而全了讯檐,關(guān)鍵是,看得下去么染服?
某天看到有人推薦這么一本書《圖解HTTP》别洪,說淺顯易懂而又不失風(fēng)趣。翻了一下確實如此柳刮,于是來作個筆記挖垛。
1. 簡介
目前主流的HTTP協(xié)議版本是1997年1月公布的1.1,最初的標(biāo)準(zhǔn)是RFC2068秉颗,之后發(fā)布了修訂版RFC2616. 而新一代2.0正在制訂中痢毒。
現(xiàn)在HTTP協(xié)議已經(jīng)超出了web這個框架的局限,被運(yùn)用到了各種場景里蚕甥。
疑問:(是么哪替?還有什么場景?)
2. 簡單的HTTP協(xié)議
HTTP用于客戶端和服務(wù)器端之間的通信菇怀,請求必定由客戶端發(fā)出夷家,服務(wù)器端回復(fù)響應(yīng)。
請求報文包括:方法敏释,uri库快,協(xié)議版本,請求首部字段钥顽,內(nèi)容實體
響應(yīng)報文包括:協(xié)議版本义屏,狀態(tài)碼,用以解釋狀態(tài)碼的原因短語蜂大,可選的響應(yīng)首部字段以及實體主體
HTTP協(xié)議自身不具備保存之前發(fā)送過的請求或響應(yīng)的功能闽铐,有了cookie再使用HTTP協(xié)議通信,就可以管理狀態(tài)了奶浦。
請求URI的方式
URI為完整的請求URI
在首部字段host中寫明網(wǎng)絡(luò)域名或IP地址
如果是對服務(wù)器本身發(fā)起請求兄墅,可以用一個*來代替請求URI,如:OPTIONS * HTTP/1.1
告知服務(wù)器意圖的HTTP方法
get 獲取資源
post 傳輸實體主體
put 傳輸文件
鑒于HTTP 1.1的put方法自身不帶驗證機(jī)制澳叉,因此一般web網(wǎng)站不使用該方法隙咸。若配合web應(yīng)用程序的驗證機(jī)制沐悦,或架構(gòu)設(shè)計采用REST標(biāo)準(zhǔn)的同類網(wǎng)站,就可能會開放使用put方法五督。
head 獲得報文首部
delete 刪除文件
和put一樣不帶驗證機(jī)制藏否。當(dāng)配合web應(yīng)用程序的驗證機(jī)制,或遵守REST標(biāo)準(zhǔn)時還是有可能會開放使用的充包。
options 詢問支持的方法
trace 追蹤路徑
connect 要求用隧道協(xié)議連接代理
持久連接
HTTP協(xié)議的初始版本中副签,每進(jìn)行一次HTTP通信就要斷開一次TCP連接。
隨著HTTP普及基矮,文檔中包含大量圖片的情況變多淆储,發(fā)送請求訪問HTML頁面資源的同時,也會請求該HTML頁面里面包含的其他資源家浇。這樣遏考,每次請求都會造成無謂的TCP連接建立和斷開,增加通信量的開銷蓝谨。
持久連接(HTTP Persistent Connections, 也稱為HTTP keep-alive 或 HTTP connection reuse)灌具,特點(diǎn)是,只要任意一端沒有明確提出斷開連接譬巫,則保持TCP連接狀態(tài)咖楣。
在 HTTP 1.1 中,所有的鏈接默認(rèn)都是持久連接芦昔。持久連接旨在建立1次TCP連接后進(jìn)行多次請求和響應(yīng)的交互诱贿。
管線化
持久連接使得多數(shù)請求以管線化 (pipellining) 方式發(fā)送成為可能。
管線化技術(shù)出現(xiàn)后咕缎,不用等待相應(yīng)亦可直接發(fā)送下一個請求珠十。這樣就能做到同時并行發(fā)送多個請求,而不需要一個接一個地等待響應(yīng)了凭豪。
使用cookie的狀態(tài)管理
Cookie技術(shù)通過在請求和響應(yīng)報文中寫入 Cookie信息來控制客戶端的狀態(tài)焙蹭。
Cookie會根據(jù)從服務(wù)器端發(fā)送的響應(yīng)報文內(nèi)的一個叫做 Set-Cookie的首部字段信息,通知客戶端保存Cookie嫂伞。當(dāng)下次客戶端再往該服務(wù)器發(fā)送請求時孔厉,客戶端會自動在請求報文中加入 Cookie值后發(fā)送出去。
服務(wù)器端發(fā)現(xiàn)客戶端發(fā)送過來的 Cookie后帖努,會去檢查究竟是從哪一個客戶端發(fā)來的連接請求撰豺,然后對比服務(wù)器上的記錄,最后得到之前的狀態(tài)信息拼余。
HTTP狀態(tài)碼
類別 原因短語
1xx 信息性狀態(tài)碼
2xx
3xx
4xx
5xx
經(jīng)常使用的狀態(tài)碼大概有14種
HTTP首部字段類型
通用
請求
響應(yīng)
實體
具體的字段和詳細(xì)內(nèi)容污桦,用到的時候再查文檔,太細(xì)的東西也不用背下來匙监,用的時候拿來就好凡橱。
確保安全的HTTPS
tcpip是可能被竊聽的網(wǎng)絡(luò)
加密處理方法
通信的加密
內(nèi)容的加密
HTTP+加密+認(rèn)證+完整性保護(hù)=HTTPS
HTTPS是身批ssl外殼的HTTP
通信接口部分用ssl和tls協(xié)議代替
ssl是獨(dú)立與HTTP的協(xié)議小作,是當(dāng)今世界上應(yīng)用最為廣泛的網(wǎng)絡(luò)安全技術(shù)
https采用共享密鑰加密和公開密鑰加密兩者并用的混合加密機(jī)制。
在交換密鑰環(huán)節(jié)使用公開密鑰加密方式梭纹,之后的建立通信交換報文階段則使用共享密鑰加密方式躲惰。
使用ca和其相關(guān)機(jī)關(guān)頒發(fā)的公開密鑰證書致份。
要進(jìn)行https通信变抽,證書是必不可少的。
然后下面還介紹了幾種證書氮块,有需要的時候可以再翻書绍载。
HTTPs的安全通信機(jī)制
web的攻擊技術(shù)
這個可以稍微了解一下
(未完待續(xù))