(摘抄)HTTP 協議詳解

2022-02-21 13:59:13 字數 1889 閱讀 7923

什麼是http協議

協議是指計算機通訊網路中兩台計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(http)是一種通訊協議,它允許將超文字標記語言(html)文件從web伺服器傳送到客戶端的瀏覽器

目前我們使用的是http/1.1 版本

http協議是無狀態的

http協議是無狀態的,同乙個客戶端的這次請求和上次請求是沒有對應關係,對http伺服器來說,它並不知道這兩個請求來自同乙個客戶端。 為了解決這個問題, web程式引入了cookie機制來維護狀態.

http協議定義了很多與伺服器互動的方法,最基本的有4種,分別是get,post,put,delete. 乙個url位址用於描述乙個網路上的資源,而http中的get, post, put, delete就對應著對這個資源的查,改,增,刪4個操作。 我們最常見的就是get和post了。get一般用於獲取/查詢資源資訊,而post一般用於更新資源資訊.

我們看看get和post的區別

1. get提交的資料會放在url之後,以?分割url和傳輸資料,引數之間以&相連,如editposts.aspx?name=test1&id=123456. post方法是把提交的資料放在http包的body中.

2. get提交的資料大小有限制(因為瀏覽器對url的長度有限制),而post方法提交的資料沒有限制.

3. get方式需要使用request.querystring來取得變數的值,而post方式通過request.form來獲取變數的值。

4. get方式提交資料,會帶來安全問題,比如乙個登入頁面,通過get方式提交資料時,使用者名稱和密碼將出現在url上,如果頁面可以被快取或者其他人可以訪問這台機器,就可以從歷史記錄獲得該使用者的賬號和密碼.

response 訊息中的第一行叫做狀態行,由http協議版本號, 狀態碼, 狀態訊息 三部分組成。

狀態碼用來告訴http客戶端,http伺服器是否產生了預期的response.

http/1.1中定義了5類狀態碼, 狀態碼由三位數字組成,第乙個數字定義了響應的類別

1xx  提示資訊 - 表示請求已被成功接收,繼續處理

2xx  成功 - 表示請求已被成功接收,理解,接受

3xx  重定向 - 要完成請求必須進行更進一步的處理

4xx  客戶端錯誤 -  請求有語法錯誤或請求無法實現

5xx  伺服器端錯誤 -   伺服器未能實現合法的請求

header 有很多,比較難以記憶,這裡只摘了幾個

cache 頭域

if-modified-since

作用: 把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上實際檔案的最後修改時間進行對比。如果時間一致,那麼返回304,客戶端就直接使用本地快取檔案。如果時間不一致,就會返回200和新的檔案內容。客戶端接到之後,會丟棄舊檔案,把新檔案快取起來,並顯示在瀏覽器中。

if-none-match

作用: if-none-match和etag一起工作,工作原理是在http response中新增etag資訊。 當使用者再次請求該資源時,將在http request 中加入if-none-match資訊(etag的值)。如果伺服器驗證資源的etag沒有改變(該資源沒有更新),將返回乙個304狀態告訴客戶端使用本地快取檔案。否則將返回200狀態和新的資源和etag.  使用這樣的機制將提高**的效能

cache-control

作用: 這個是非常重要的規則。 這個用來指定response-request遵循的快取機制。各個指令含義如下

cache-control:public   可以被任何快取所快取()

cache-control:private     內容只快取到私有快取中

cache-control:no-cache  所有內容都不會被快取

Http協議詳解 Http請求詳解

http是hypertext transfer protocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與w...

Http協議詳解

http協議是乙個基於tcp ip 的協議,使用的是一種請求 響應模型 目前的版本為1。1,但有一些 仍然使用1。0的版本,在待會的實驗中,我們可以看到,網易的主頁163.com仍舊使用的1.0的標準。1 何為請求 響應機制 在這一種機制中,總是客戶端請求伺服器,伺服器接受響應後根據請求端的請求資訊...

HTTP協議詳解

head to inde x.html not supported.invalid method in request head htp 1.1 apache 1.3.12 server at www.fudan.edu.cn port 80 關於實體頭部的內容還可以有 last modified ...