HTTP(HyperText Transfer Protocol)協(xié)議是基于TCP的應用層協(xié)議廓俭,是用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協(xié)議。它可以使瀏覽器更加高效婿屹,使網(wǎng)絡傳輸減少撬陵。
一拦宣、HTTP協(xié)議的的特點
- HTTP協(xié)議是無狀態(tài)的
就是說每次HTTP請求都是獨立的,任何兩個請求之間沒有什么必然的聯(lián)系垮刹。但是在實際應用當中并不是完全這樣的达吞,引入了Cookie和Session機制來關(guān)聯(lián)請求。 - 多次HTTP請求
在客戶端請求網(wǎng)頁時多數(shù)情況下并不是一次請求就能成功的荒典,服務端首先是響應HTML頁面酪劫,然后瀏覽器收到響應之后發(fā)現(xiàn)HTML頁面還引用了其他的資源,例如寺董,CSS覆糟,JS文件,圖片等等遮咖,還會自動發(fā)送HTTP請求這些需要的資源√沧郑現(xiàn)在的HTTP版本支持管道機制,可以同時請求和響應多個請求,大大提高了效率麦箍。 - 基于TCP協(xié)議
HTTP協(xié)議目的是規(guī)定客戶端和服務端數(shù)據(jù)傳輸?shù)母袷胶蛿?shù)據(jù)交互行為漓藕,并不負責數(shù)據(jù)傳輸?shù)募毠?jié)。底層是基于TCP實現(xiàn)的⌒眩現(xiàn)在使用的版本當中是默認持久連接的享钞,也就是多次HTTP請求使用一個TCP連接。
二诀蓉、常見HTTP的響應狀態(tài)碼
- 200 OK
請求已成功嫩与,請求所希望的響應頭或數(shù)據(jù)體將隨此響應返回。出現(xiàn)此狀態(tài)碼是表示正常狀態(tài)交排。 - 3XX
重定向異常划滋。 - 400Bad Request
- 語義有誤,當前請求無法被服務器理解埃篓。除非進行修改苟蹈,否則客戶端不應該重復提交這個請求。
- 請求參數(shù)有誤事格。
- 403 Forbidden
服務器已經(jīng)理解請求旬痹,但是拒絕執(zhí)行它。 - 404 Not Found
請求失敗部脚,請求所希望得到的資源未被在服務器上發(fā)現(xiàn)想邦。 - 405 Method Not Allowed
不支持的方法 - 500 Internal Server Error
服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理委刘。一般來說丧没,這個問題都會在服務器端的源代碼出現(xiàn)錯誤時出現(xiàn)。 - 502 Bad Gateway
作為網(wǎng)關(guān)或者代理工作的服務器嘗試執(zhí)行請求時锡移,從上游服務器接收到無效的響應呕童。 - 503 Service Unavailable
由于臨時的服務器維護或者過載,服務器當前無法處理請求淆珊。 - 504 Gateway Timeout
作為網(wǎng)關(guān)或者代理工作的服務器嘗試執(zhí)行請求時夺饲,未能及時從上游服務器(URI標識出的服務器,例如HTTP施符、FTP往声、LDAP)或者輔助服務器(例如DNS)收到響應。
三戳吝、HTTPS的工作原理
- (1)客戶使用https的URL訪問Web服務器浩销,要求與Web服務器建立SSL連接。
- (2)Web服務器收到客戶端請求后骨坑,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端撼嗓。
- (3)客戶端的瀏覽器與Web服務器開始協(xié)商SSL連接的安全等級柬采,也就是信息加密的等級。
- (4)客戶端的瀏覽器根據(jù)雙方同意的安全等級且警,建立會話密鑰粉捻,然后利用網(wǎng)站的公鑰將會話密鑰加密,并傳送給網(wǎng)站斑芜。
- (5)Web服務器利用自己的私鑰解密出會話密鑰肩刃。
- (6)Web服務器利用會話密鑰加密與客戶端之間的通信。
四杏头、HTTP和HTTPS的區(qū)別
HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的盈包,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全醇王,為了保證這些隱私數(shù)據(jù)能加密傳輸呢燥,于是網(wǎng)景公司設計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密,從而就誕生了HTTPS寓娩。簡單來說叛氨,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議棘伴,要比http協(xié)議安全寞埠。
HTTPS和HTTP的區(qū)別主要如下:
- https協(xié)議需要到ca申請證書,一般免費證書較少焊夸,因而需要一定費用仁连。
- http是超文本傳輸協(xié)議,信息是明文傳輸阱穗,https則是具有安全性的ssl加密傳輸協(xié)議饭冬。
- http和https使用的是完全不同的連接方式,用的端口也不一樣颇象,前者是80伍伤,后者是443。