圖解HTTP讀書筆記(二)

第2章:簡單的HTTP協議

2.1 http協議用於客戶端和服務器的通信

2.2 通過請求和響應的交換達成通信


上圖爲某個客戶端發送給服務器的請求報文,請求報文由請求方法、請求的uri、請求使用的協議及版本以及其它可能的請求首部字段和可能的內容實體組成。


響應報文由協議版本、響應狀態碼以及對應的意義解釋、可選的響應首部字段和響應主體組成。

2.3 HTTP是不保存狀態的協議

http協議對於之前客戶端和服務器端發送的任何東西或者狀態都不做保存,也就是說它只管當前,不管以後或者之前。其無狀態的缺點是:有些業務情境下,需要保存上一次通信的結果。針對此類需求,可以使用cookie+http協議的方式實現。

2.4 請求URI定位資源

http協議使用URI定位資源。指定請求URI的方式:


2.5 告知服務器意圖的HTTP方法

GET:獲取資源、POST:傳輸實體主體、PUT:傳輸文件、HEAD:獲取報文首部、DELETE:刪除文件、OPTIONS:詢問支持的方法、TRACE:追蹤路徑、CONNECT:要求用隧道協議連接代理、LINK:建立和資源間的聯繫、UNLINE:斷開鏈接

PUT例子:


2.8 使用cookie的狀態管理

第3章  http報文內的報文信息

第4章 返回結果的http狀態碼


經常使用的狀態碼有14種:200、204、206、301、302、303、304、307、400、401、403、404、500、503

200 ok、204 no content(請求處理成功,但是沒有資源可以返回)、206 partial content:客戶端通過content-range進行了範圍請求。206指的是服務器處理成功,並返回了客戶端要求的部分內容。301 move permanently:永久重定向,服務器跟客戶端說要更新新的url了。302: found:表示資源臨時重定向到了別處,希望用戶能用新的url訪問。303:see another, 也是臨時重定向,但是服務端要求客戶端用get方法請求資源。304 not modified。當請求頭中包含if-modify-since、if-unmodified-since、if-match、if-none-match、if-range,就會返回304,表示資源沒有更改,可以使用緩存。307: Temporary redirect:臨時重定向,跟302一樣。400: Bad Request,表示請求報文有錯,需要修改後重新發送請求。401: unauthorized:表示要訪問的頁面需要認證信息。如果沒有請求中沒有發送認證信息或者認證信息不正確,那麼就會返回401。403: forbidden,表示服務器拒絕提供請求的資源,可能的原因有:沒有要訪問的文件的權限、發送的ip對方服務器不認。404: not found。500: internel server error。內部服務器錯誤。表示服務器在執行請求的時候發生了一些錯誤,也可能是臨時的故障。503: service unvailable:表示服務器目前正忙,還沒有時間處理請求。

第5章  與http協作的web服務器

5.1 用單臺虛擬主機實現多個域名

物理層面上只有一個主機,但是,可以利用虛擬主機的概念搭建多臺服務器。

5.2 通信數據轉發程序:代理、網關、隧道

代理:

代理是一種充當服務器和客戶端中間角色的具有轉發功能的應用程序,它接收客戶端的請求,轉發給服務器。並接受服務器的響應,返回給客戶端。

緩存代理:

也就是cdn服務器,當客戶端第一次請求資源的時候,會通過緩存代理服務器,發現沒有這個資源,就向源服務器請求,拿到資源的時候事先存一份。然後,當客戶端下次請求資源的時候,直接從cdn服務器返回資源。

網關:

網關是轉發其他服務器通信數據的服務器。


利用網關能提高通信的安全性,因爲可以在客戶端與網關之間的通信線路上加密以確保連接的安全。比如,網關可以連接數據庫,使用 SQL 語句查詢數據。另外,在 Web 購物網站上進行信用卡結算時,網關可以和信用卡結算系統聯動。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章