計(jì)算機(jī)網(wǎng)絡(luò)——HTTP(1)
????首先HTTP協(xié)議,Hypertext Transfer Protocol 超文本傳輸協(xié)議,是在應(yīng)用層的協(xié)議,是基于傳輸層的TCP協(xié)議之上的。
????協(xié)議可以被分為服務(wù)端與客戶端兩個部分組成,客戶端向服務(wù)端發(fā)送請求報(bào)文,服務(wù)端返回響應(yīng)報(bào)文。請求報(bào)文必須由請求方法,請求資源的URI,協(xié)議版本和內(nèi)容實(shí)體所組成。響應(yīng)報(bào)文則由協(xié)議版本,狀態(tài)碼,原因短語及實(shí)體主體所構(gòu)成。
????HTTP協(xié)議是一個無狀態(tài)協(xié)議,不保存之前的連接狀態(tài),之前連接所產(chǎn)生的一些響應(yīng)報(bào)文和請求報(bào)文均不保存。但是現(xiàn)在引入了Cookie技術(shù)來完善狀態(tài)管理機(jī)制,通過在響應(yīng)報(bào)文和請求報(bào)文中添加相關(guān)的Cookie信息來實(shí)現(xiàn)。
????·由服務(wù)器端在響應(yīng)報(bào)文中添加一個set—cookie的字段信息,通知客戶端保存對應(yīng)的cookie值,在下次發(fā)送請求報(bào)文時添加此cookie值,服務(wù)器便可檢查對應(yīng)的cookie值比對記錄獲取之前的狀態(tài)信息。服務(wù)器主動率先發(fā)送包含cookie值的報(bào)文,客戶端內(nèi)處理存儲。
????請求報(bào)文的幾種方法,get方法用于獲取服務(wù)器上的相關(guān)資源,獲取已經(jīng)被URI定位識別的資源,其中URI表示統(tǒng)一資源標(biāo)識符,用于標(biāo)識某互聯(lián)網(wǎng)資源,而URL屬于是該資源的所處的位置,這個是URI的子集的關(guān)系。
????POST方法用于傳輸實(shí)體主體,也就是一般用于由客戶端向服務(wù)器傳輸內(nèi)容。
????HEAD方法獲取相應(yīng)資源的首部信息,驗(yàn)證URI對應(yīng)資源的有效性和資源的更新時間,驗(yàn)證通信狀態(tài)。
????關(guān)于持久化連接,在最初的版本中HTTP是不支持持久化連接的,當(dāng)短時間內(nèi)多次傳輸文件內(nèi)容時就會反復(fù)建立連接,浪費(fèi)資源?,F(xiàn)在1.1版本默認(rèn)持久化連接,直到任意一端明確提出中斷連接為止。并且現(xiàn)在已經(jīng)支持管線化了,即不用等待響應(yīng)報(bào)文到達(dá),就可以并行發(fā)送多個請求報(bào)文了。
????

最常見的就是404服務(wù)器上沒有對應(yīng)資源,400就是報(bào)文中存在語法錯誤,可能是格式錯誤。503就是服務(wù)器端超負(fù)載或者已停機(jī)。
????代理服務(wù)器就是接受客戶端請求之后將其進(jìn)行轉(zhuǎn)發(fā)的應(yīng)用程序,它不改變請求的URI,只是具有轉(zhuǎn)發(fā)功能。目標(biāo)資源所在的服務(wù)器被稱為源服務(wù)器,請求報(bào)文和響應(yīng)報(bào)文每經(jīng)過一個代理服務(wù)器就在報(bào)文首部的via字段中添加該代理服務(wù)器的信息,最后就可以形成路徑。
????代理服務(wù)器可以利用緩存技術(shù)來減少網(wǎng)絡(luò)帶寬的流量,降低源服務(wù)器的壓力。在資源轉(zhuǎn)發(fā)的過程中,緩存代理服務(wù)器會將資源的副本保存在代理服務(wù)器上,遇到相同請求資源時可以直接返回,但是定期會更新緩存內(nèi)容。
????如果是僅具有轉(zhuǎn)發(fā)功能而不修改報(bào)文內(nèi)容的代理服務(wù)器被稱為透明代理,反之則是非透明代理。
????網(wǎng)關(guān)的工作機(jī)制和代理類似,但是它是服務(wù)器,而代理是應(yīng)用程序,網(wǎng)關(guān)能使得通信線路上的服務(wù)器提供非HTTP的服務(wù),可以提升通信的安全性。